On Jul 19, 2011, at 12:55 AM, Yogesh Chopra wrote:

> Hi,
> Please find attached Samples.tgz file which contains sample code
> and binaries that you can use to reproduce the problem reported. Here
> is a brief summary of the included files:
> 
> Samples/
> ├── Linux
> │
> │   ├── dtls_udp_echo.c
> │   └── Make.sample
> └── Windows
>  └── dtls.zip
> 
> 
> You can run the client program on a Linux host.
> Using usage below where -p represents ports and -n represents packets to send
> ./client -r 10.10.100.116 -L 0.0.0.0 -p 23232 -v -l 1400 -n 100
> 
> You can run 2 -3 client instances from the same host (or different host)
> 
> 
> The windows source code, VC project files are included in
> Samples/Windows/dtls.zip
> The server listens by default on port 23232
> 
> You can run the server binary from dtls\windows\vc_proj\Debug\dtls.exe
> (All server certs are already included in Debug directory)
> 
> 
> As reported earlier, the problem is server does not accept any new
> client connections until a client connection is being processed.
> 
> (You can compile the same windows server simple_dtls_udp_server.c on
> linux too using the Make.sample instructions and see that this is not
> an issue on Linux).
> 
> I had to remove binaries (linux and windows) due to size limitations
> for post messages.
> 
> Note: Please refer to this link from Microsoft
> http://msdn.microsoft.com/en-us/library/ms740621%28v=vs.85%29.aspx
Reading this in combination with
http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.exclusiveaddressuse.aspx#Y617
(First sentence after Remarks) it seems that you simply can't
build a UDP based server using multiple connected socket.
The problem is not limited to the listen() stuff, even if
you decide not to use the listen() stuff, DTLS in OpenSSL
uses connected UDP sockets. Hmm. I've never seen this kind
of limitation on any Unix system.
So I suggest to use a non-Windows system for the server side,
most likely a wise decision anyways...
> 
> This may be a problem in general on windows on using SO_REUSEADDR.
> 
> If there are any known workarounds or alternatives we can use that
> will be great.
The workaround is to use an operating system with a proper IP stack,
aka a Unix like system.

Best regards
Michael

PS: I'm actually surprised that you got that far on Windows, since we
    NEVER tested any line of the DTLS code on any kind of Windows.
> 
> -Yogi
> <Samples.tgz>

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to