]> git.meshlink.io Git - meshlink/commit
Handle not being able to bind to the configured port at startup.
authorGuus Sliepen <guus@meshlink.io>
Fri, 6 Mar 2020 23:19:57 +0000 (00:19 +0100)
committerGuus Sliepen <guus@meshlink.io>
Fri, 6 Mar 2020 23:19:57 +0000 (00:19 +0100)
commitdb8e6e4221c974314fd8b05d79dbc94152f01108
treeebc85db260c1090a68281855f92c154722fc926f
parent3bba8e95482de6f03d04dba4808e9add2071296b
Handle not being able to bind to the configured port at startup.

When starting a MeshLink node that has already been configured to run on a
certain port, but that port is in use (for one or more of the supported
address families), it would either ignore some address families, or would
try to bind to port 0 if all address families failed. However, this is
problematic, because it makes discovery and invitation URL generation much
harder.

Fix this by checking if any port binding fails for a supported address
family, and if so, try to find another port that does support binding on
all address families. If it fails to find any available port, it will fall
back to binding to port 0, so that outgoing connections are still possible.
src/meshlink.c
src/meshlink_internal.h
src/net.h
src/net_setup.c
src/net_socket.c