conn: don't remember tls state from old connection
* Clear conn->secured and conn->tls_failed. These values could be saved after re-connect. * conn is not secured if conn->tls is NULL. This condition handles disconnected connections.
This commit is contained in:
14
src/conn.c
14
src/conn.c
@@ -400,8 +400,12 @@ int xmpp_connect_client(xmpp_conn_t * const conn,
|
|||||||
const char *prefdomain = NULL;
|
const char *prefdomain = NULL;
|
||||||
int found;
|
int found;
|
||||||
|
|
||||||
conn->type = XMPP_CLIENT;
|
if (conn->state != XMPP_STATE_DISCONNECTED)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
conn->type = XMPP_CLIENT;
|
||||||
|
conn->secured = 0;
|
||||||
|
conn->tls_failed = 0;
|
||||||
conn->domain = xmpp_jid_domain(conn->ctx, conn->jid);
|
conn->domain = xmpp_jid_domain(conn->ctx, conn->jid);
|
||||||
if (!conn->domain) return -1;
|
if (!conn->domain) return -1;
|
||||||
|
|
||||||
@@ -479,7 +483,12 @@ int xmpp_connect_component(xmpp_conn_t * const conn, const char * const server,
|
|||||||
{
|
{
|
||||||
int connectport;
|
int connectport;
|
||||||
|
|
||||||
|
if (conn->state != XMPP_STATE_DISCONNECTED)
|
||||||
|
return -1;
|
||||||
|
|
||||||
conn->type = XMPP_COMPONENT;
|
conn->type = XMPP_COMPONENT;
|
||||||
|
conn->secured = 0;
|
||||||
|
conn->tls_failed = 0;
|
||||||
/* JID serves as an identificator here and will be used as "to" attribute
|
/* JID serves as an identificator here and will be used as "to" attribute
|
||||||
of the stream */
|
of the stream */
|
||||||
conn->domain = xmpp_strdup(conn->ctx, conn->jid);
|
conn->domain = xmpp_strdup(conn->ctx, conn->jid);
|
||||||
@@ -487,7 +496,6 @@ int xmpp_connect_component(xmpp_conn_t * const conn, const char * const server,
|
|||||||
/* The server domain, jid and password MUST be specified. */
|
/* The server domain, jid and password MUST be specified. */
|
||||||
if (!(server && conn->jid && conn->pass)) return -1;
|
if (!(server && conn->jid && conn->pass)) return -1;
|
||||||
|
|
||||||
|
|
||||||
connectport = port ? port : _conn_default_port(conn);
|
connectport = port ? port : _conn_default_port(conn);
|
||||||
|
|
||||||
xmpp_debug(conn->ctx, "xmpp", "Connecting via %s", server);
|
xmpp_debug(conn->ctx, "xmpp", "Connecting via %s", server);
|
||||||
@@ -791,7 +799,7 @@ void xmpp_conn_set_old_style_ssl(xmpp_conn_t * const conn)
|
|||||||
/** Returns whether TLS session is established or not. */
|
/** Returns whether TLS session is established or not. */
|
||||||
int xmpp_conn_is_secured(xmpp_conn_t * const conn)
|
int xmpp_conn_is_secured(xmpp_conn_t * const conn)
|
||||||
{
|
{
|
||||||
return conn->secured && !conn->tls_failed ? 1 : 0;
|
return conn->secured && !conn->tls_failed && conn->tls != NULL ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _log_open_tag(xmpp_conn_t *conn, char **attrs)
|
static void _log_open_tag(xmpp_conn_t *conn, char **attrs)
|
||||||
|
|||||||
Reference in New Issue
Block a user