]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
dtls: Queue outgoing handshake messages in the retransmission layer.
authorJonathan Bastien-Filiatrault <joe@x2a.org>
Tue, 4 Aug 2009 01:44:51 +0000 (21:44 -0400)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Thu, 17 Feb 2011 21:44:21 +0000 (22:44 +0100)
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
lib/gnutls_handshake.c

index 99a2cdd4f0cdf4f4720ca32e55f62c2b12563bfd..19582d5494858e7f7f37305c3f06af94eb42139c 100644 (file)
@@ -33,6 +33,7 @@
 #include "gnutls_algorithms.h"
 #include "gnutls_compress.h"
 #include "gnutls_cipher.h"
+#include "gnutls_dtls.h"
 #include "gnutls_buffers.h"
 #include "gnutls_mbuffers.h"
 #include "gnutls_kx.h"
@@ -1243,7 +1244,11 @@ _gnutls_send_handshake (gnutls_session_t session, mbuffer_st * bufel,
 
   session->internals.last_handshake_out = type;
 
-  _gnutls_handshake_io_cache_int (session, type, bufel);
+  if (_gnutls_is_dtls(session))
+    _gnutls_dtls_handshake_enqueue (session, data, datasize, type,
+                                   session->internals.dtls.hsk_write_seq-1);
+  else
+    _gnutls_handshake_io_cache_int (session, type, bufel);
 
   switch (type)
     {
@@ -2769,6 +2774,8 @@ _gnutls_handshake_client (gnutls_session_t session)
       STATE = STATE1;
       IMED_RET ("send hello", ret, 1);
 
+      _gnutls_dtls_transmit(session);
+
     case STATE2:
       /* receive the server hello */
       ret =