> 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]
