2. Linux TCP Socket Options: SimpleXMQ, on which the SimpleX Chat CLI client
depends, uses Linux-specific TCP socket options [2] that are not available
in OpenBSD [3], namely TCP_KEEPIDLE, TCP_KEEPINTVL, and TCP_KEEPCNT. My
questions regarding this issue are:
[...]

For all of those options,

        https://man7.org/linux/man-pages/man7/tcp.7.html

states that they should not be used in coded intended to be portable.
So you should probably ask upstream why they use those options.


I know that these TCP socket options are not defined in the POSIX standard, which is why different Unix-like operating systems have varying options in their TCP stack. However, it is understandable why the SimpleX Chat project and other software projects utilize these options. These options are not only available on Linux but also on all actively developed free Unix-like operating systems, with the exception of OpenBSD. FreeBSD [1], NetBSD [2], DragonFlyBSD [3], and even operating systems based on illumos [4] (the successor of OpenSolaris) include these options in their TCP stack.

References:
1. https://man.freebsd.org/cgi/man.cgi?query=tcp&sektion=4
2. https://man.netbsd.org/tcp.4
3. https://man.dragonflybsd.org/?command=tcp
4. https://www.illumos.org/man/4P/TCP

Reply via email to