summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2010-03-03 13:13:32 +0100
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2010-03-03 13:13:32 +0100
commitcf2059a9c27cd4972a4ba714d3c0cccd5746231c (patch)
tree8b3890cfb6d3fe0ebcb0cf34af33f28c04a30436
parent67ff3f2cedabcf1a831129466360280cd571ab85 (diff)
downloadgnutls-cf2059a9c27cd4972a4ba714d3c0cccd5746231c.tar.gz
gnutls-serv will terminate connection on rehandshake errors.
-rw-r--r--src/serv.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/serv.c b/src/serv.c
index 79859c7469..a66915ed97 100644
--- a/src/serv.c
+++ b/src/serv.c
@@ -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
{