[Patch] Fix nonblocking DTLS

Sean Buckheister s_buckhe at cs.uni-kl.de
Wed Feb 15 03:55:26 CET 2012


Hi,

after seeing lots and lots of failures in nonblocking DTLS handshakes, I
went digging through code and packet traces. I found that a gnutls
server will not retransmit it's last handshake flight for nonblocking,
nonresuming session, while the client would continue to request such
retransmission by duplicating it's respective last flight. Ultimately,
this would lead to timeouts.

The offending piece of code is gnutls_dtls.c, _dtls_transmit, lines
254-255. Removing those sort of fixed DTLS -nb, i.e. all 18432 handshake
sequence trials of dtls-stress passed. make check passed as well.

There should be no problem removing these two lines, as _dtls_transmit
is only called directly when a handshake sequence should be flushed, and
indirectly when a handshake packet was received when none were expected.
A patch is attached, please let me know what you think.


 -- Sean
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dtls.patch
Type: text/x-patch
Size: 1379 bytes
Desc: not available
URL: </pipermail/attachments/20120215/ba972380/attachment.bin>


More information about the Gnutls-devel mailing list