diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-03-03 13:13:32 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-03-03 13:13:32 +0100 |
commit | cf2059a9c27cd4972a4ba714d3c0cccd5746231c (patch) | |
tree | 8b3890cfb6d3fe0ebcb0cf34af33f28c04a30436 | |
parent | 67ff3f2cedabcf1a831129466360280cd571ab85 (diff) | |
download | gnutls-cf2059a9c27cd4972a4ba714d3c0cccd5746231c.tar.gz |
gnutls-serv will terminate connection on rehandshake errors.
-rw-r--r-- | src/serv.c | 14 |
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 { |