diff --git a/src/event.c b/src/event.c index 8b7655c..8306720 100644 --- a/src/event.c +++ b/src/event.c @@ -162,6 +162,9 @@ void xmpp_run_once(xmpp_ctx_t *ctx, const unsigned long timeout) xmpp_debug(ctx, "xmpp", "connection failed"); conn->state = XMPP_STATE_DISCONNECTED; sock_close(conn->sock); + /* notify the connection handler */ + conn->conn_handler(conn, XMPP_CONN_FAIL, conn->error, + conn->stream_error, conn->userdata); break; } diff --git a/strophe.h b/strophe.h index 4f9944d..9b04ec5 100644 --- a/strophe.h +++ b/strophe.h @@ -91,7 +91,8 @@ typedef struct _xmpp_stanza_t xmpp_stanza_t; /* connect callback */ typedef enum { XMPP_CONN_CONNECT, - XMPP_CONN_DISCONNECT + XMPP_CONN_DISCONNECT, + XMPP_CONN_FAIL } xmpp_conn_event_t; typedef enum {