From 51b9b4f3f7cfbe1eb9cd72baea47a1b443367680 Mon Sep 17 00:00:00 2001 From: defanor Date: Mon, 2 Mar 2020 05:12:48 +0300 Subject: Schedule a reconnect on TLS failure --- src/rexmpp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rexmpp.c b/src/rexmpp.c index 2ac87ce..9e6d8eb 100644 --- a/src/rexmpp.c +++ b/src/rexmpp.c @@ -663,7 +663,7 @@ void rexmpp_recv (rexmpp_t *s) { rexmpp_schedule_reconnect(s); } } - } while (chunk_raw_len > 0); + } while (chunk_raw_len > 0 && s->reconnect_number == 0); } rexmpp_err_t rexmpp_stream_open (rexmpp_t *s) { @@ -759,6 +759,7 @@ rexmpp_err_t rexmpp_tls_handshake (rexmpp_t *s) { } gnutls_bye(s->gnutls_session, GNUTLS_SHUT_RDWR); rexmpp_cleanup(s); + rexmpp_schedule_reconnect(s); return REXMPP_E_TLS; } s->tls_state = REXMPP_TLS_ACTIVE; @@ -797,6 +798,7 @@ rexmpp_err_t rexmpp_tls_handshake (rexmpp_t *s) { rexmpp_log(s, LOG_ERR, "Unexpected TLS handshake error: %s", gnutls_strerror(ret)); rexmpp_cleanup(s); + rexmpp_schedule_reconnect(s); return REXMPP_E_TLS; } } -- cgit v1.2.3