Michael Davidsaver a3a685ba2b server: correctly adjudicate collision bind() of specific port
On Linux (at least) SO_REUSEADDR, which allows a new listener to
bind while an existing sock is in FIN-WAIT.  Apparently this allows
any number of sockets to bind(), but only when listen() to succeed.

Further, on Linux there is a known documented race condition which
can result in all listen() failing.  It isn't clear how to handle
this case without a potentially infinite loop, so ignore it.
If this happens, then eg. no PVA server will get port 5075.

So when probing for another listener, it is necessary to enter the
listening state.  When this fails, the socket is no longer usable
for another bind(), so it is necessary to allocate another for the
next attempt.
2024-08-14 17:53:36 -07:00
2023-11-06 08:08:57 -08:00
2023-12-12 16:02:09 -08:00
2023-06-07 21:12:34 -07:00
2024-08-04 09:57:00 -07:00
doc
2024-07-31 21:47:08 -07:00
2023-05-26 08:49:27 -07:00
2023-11-21 12:20:34 -08:00
2024-08-01 15:46:31 -07:00
2023-11-21 12:20:34 -08:00
2023-08-14 21:17:42 -07:00
2023-11-20 10:59:44 -08:00
2023-08-22 15:09:42 +02:00
2023-06-14 11:26:31 -07:00
2022-04-05 12:01:28 -07:00
2023-09-07 10:52:04 +02:00
2019-10-23 13:29:31 -07:00
2023-05-09 22:24:05 -07:00
2023-05-26 08:49:27 -07:00
doc
2024-07-31 21:47:08 -07:00
doc
2024-07-31 21:47:08 -07:00
2024-08-04 09:57:00 -07:00
S
Description
The "new" pvAccess library
Readme BSD-3-Clause
2.7 MiB
Languages
C++ 95.9%
Python 2.1%
Makefile 1.3%
Shell 0.3%
CMake 0.2%
Other 0.1%