]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
gnutls-serv will terminate connection on rehandshake errors.
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Wed, 3 Mar 2010 12:13:32 +0000 (13:13 +0100)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Wed, 3 Mar 2010 12:13:32 +0000 (13:13 +0100)
src/serv.c

index 79859c74697b432a54b7711670144e089e004ee4..a66915ed9715fc6f80e06a72a7f72852410c3438 100644 (file)
@@ -1222,7 +1222,7 @@ main (int argc, char **argv)
                        ret =
                          gnutls_alert_send_appropriate (j->tls_session, r);
                      }
-                   while (ret == GNUTLS_E_AGAIN);
+                   while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
                    j->http_state = HTTP_STATE_CLOSING;
                  }
                else if (r == 0)
@@ -1261,6 +1261,18 @@ main (int argc, char **argv)
                            r = gnutls_handshake (j->tls_session);
                           } 
                         while (r == GNUTLS_E_INTERRUPTED || r == GNUTLS_E_AGAIN);
+                        if (r < 0) 
+                          {
+
+                           do
+                             {
+                               ret = gnutls_alert_send_appropriate (j->tls_session, r);
+                             }
+                           while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+
+                            GERR (r);
+                           j->http_state = HTTP_STATE_CLOSING;
+                          }
                       }
                     else
                       {