Hi,
I am using OpenSSL-1.0.0d (release) + all cumulative bug fixes +
DTLS Heartbeat feature patch on Windows.
A DTLS server (non-blocking) using DTLSv1_Listen having a UDP socket
with SO_REUSEADDR is unable to accept a second client connection when
it is already accepted a client connection and serving it.
Details:
Server Client 1
State
DTLSv1_Listen Handshake complete Established
Client 2
State
Keeps sending CLIENT
HELLO but Server never responds with HelloVerify request
and select never gets
triggered on the listen fd (used by DTLSv1_listen)
As per some of the windows documents for connect, see excerpt below:
http://msdn.microsoft.com/en-us/library/ms737625%28v=vs.85%29.aspx
"For a connectionless socket (for example, type SOCK_DGRAM), the
operation performed by connect is merely to establish a default
destination address that can be used on subsequent send/ WSASend and
recv/ WSARecv calls. Any datagrams received from an address other than
the destination address specified will be discarded."
So it appears that once a socket is connected to a client, it will no
longer be used for accepting second client.
It has been observed, that when the first client connection is
released (terminated) a new client connection is accepted.
This is not a problem on Linux.
Is there any workarounds or special handling for windows ?
Thanks,
-Yogi
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [email protected]