> When you try to establish DTLS connection you should use timeouts as said in 
> RFC. DTLS uses socket's timeouts. Windows sockets have some differences in 
> "timeout API", but DTLS does not consider them. So when you set timeouts 
> with BIO_ctrl() and BIO_CTRL_DGRAM_SET_RECV_TIMEOUT or 
> BIO_CTRL_DGRAM_SET_SEND_TIMEOUT it does not work properly.
> 
> Differences in "timeout API":
> 
> 1. If recv(...) or send(...) fails due to timeout WSAGetLastError() returns 
> WSAETIMEDOUT, but not EAGAIN. But DTLS checks for EAGAIN. So, for DTLS 
> timeout does not happen. See dgram_ctrl(...) function in bss_dgram.c file 
> for commands BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP and 
> BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP.
> 
> 2. setsockopt(...) function with  SO_RCVTIMEO and SO_SNDTIMEO commands 
> requires "unsigned long" type as time value. And time should be in 
> milliseconds. May be on Win platforms DTLS should use "sizeof(unsigned 
> long)" as last parameter to setsockopt(...) in dgram_ctrl(...) function in 
> bss_dgram.c file for BIO_CTRL_DGRAM_SET_*_TIMEOUT commands.

Addressed in 0.9.8i. A.


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to