From c9ddc2b7ef9e987d516bff9f43242a1be1761b55 Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Fri, 23 Jun 2017 02:59:05 +0300 Subject: [PATCH] Make tls_new accept xmpp_conn_t --- src/auth.c | 2 +- src/conn.c | 2 +- src/tls.h | 2 +- src/tls_dummy.c | 2 +- src/tls_gnutls.c | 10 +++++----- src/tls_openssl.c | 14 +++++++------- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/auth.c b/src/auth.c index b41b4cd..5ad65ae 100644 --- a/src/auth.c +++ b/src/auth.c @@ -564,7 +564,7 @@ static void _auth(xmpp_conn_t * const conn) } if (conn->tls_support) { - tls_t *tls = tls_new(conn->ctx, conn->sock); + tls_t *tls = tls_new(conn); /* If we couldn't init tls, it isn't there, so go on */ if (!tls) { diff --git a/src/conn.c b/src/conn.c index ffac5d3..d8e34d2 100644 --- a/src/conn.c +++ b/src/conn.c @@ -874,7 +874,7 @@ int conn_tls_start(xmpp_conn_t * const conn) conn->tls = NULL; rc = XMPP_EINVOP; } else { - conn->tls = tls_new(conn->ctx, conn->sock); + conn->tls = tls_new(conn); rc = conn->tls == NULL ? XMPP_EMEM : 0; } diff --git a/src/tls.h b/src/tls.h index efe5ff7..b436309 100644 --- a/src/tls.h +++ b/src/tls.h @@ -24,7 +24,7 @@ typedef struct _tls tls_t; void tls_initialize(void); void tls_shutdown(void); -tls_t *tls_new(xmpp_ctx_t *ctx, sock_t sock); +tls_t *tls_new(xmpp_conn_t *conn); void tls_free(tls_t *tls); int tls_set_credentials(tls_t *tls, const char *cafilename); diff --git a/src/tls_dummy.c b/src/tls_dummy.c index a2179e4..957556a 100644 --- a/src/tls_dummy.c +++ b/src/tls_dummy.c @@ -33,7 +33,7 @@ void tls_shutdown(void) return; } -tls_t *tls_new(xmpp_ctx_t *ctx, sock_t sock) +tls_t *tls_new(xmpp_conn_t *conn) { /* always fail */ return NULL; diff --git a/src/tls_gnutls.c b/src/tls_gnutls.c index e94a983..ae06215 100644 --- a/src/tls_gnutls.c +++ b/src/tls_gnutls.c @@ -46,13 +46,13 @@ void tls_shutdown(void) gnutls_global_deinit(); } -tls_t *tls_new(xmpp_ctx_t *ctx, sock_t sock) +tls_t *tls_new(xmpp_conn_t *conn) { - tls_t *tls = xmpp_alloc(ctx, sizeof(tls_t)); + tls_t *tls = xmpp_alloc(conn->ctx, sizeof(tls_t)); if (tls) { - tls->ctx = ctx; - tls->sock = sock; + tls->ctx = conn->ctx; + tls->sock = conn->sock; gnutls_init(&tls->session, GNUTLS_CLIENT); gnutls_certificate_allocate_credentials(&tls->cred); @@ -61,7 +61,7 @@ tls_t *tls_new(xmpp_ctx_t *ctx, sock_t sock) gnutls_set_default_priority(tls->session); /* fixme: this may require setting a callback on win32? */ - gnutls_transport_set_int(tls->session, sock); + gnutls_transport_set_int(tls->session, conn->sock); } return tls; diff --git a/src/tls_openssl.c b/src/tls_openssl.c index 2379153..3531eb7 100644 --- a/src/tls_openssl.c +++ b/src/tls_openssl.c @@ -63,16 +63,16 @@ int tls_error(tls_t *tls) return tls->lasterror; } -tls_t *tls_new(xmpp_ctx_t *ctx, sock_t sock) +tls_t *tls_new(xmpp_conn_t *conn) { - tls_t *tls = xmpp_alloc(ctx, sizeof(*tls)); + tls_t *tls = xmpp_alloc(conn->ctx, sizeof(*tls)); if (tls) { int ret; memset(tls, 0, sizeof(*tls)); - tls->ctx = ctx; - tls->sock = sock; + tls->ctx = conn->ctx; + tls->sock = conn->sock; tls->ssl_ctx = SSL_CTX_new(SSLv23_client_method()); if (tls->ssl_ctx == NULL) goto err; @@ -92,7 +92,7 @@ tls_t *tls_new(xmpp_ctx_t *ctx, sock_t sock) if (tls->ssl == NULL) goto err_free_ctx; - ret = SSL_set_fd(tls->ssl, sock); + ret = SSL_set_fd(tls->ssl, conn->sock); if (ret <= 0) goto err_free_ssl; } @@ -104,8 +104,8 @@ err_free_ssl: err_free_ctx: SSL_CTX_free(tls->ssl_ctx); err: - xmpp_free(ctx, tls); - _tls_log_error(ctx); + xmpp_free(conn->ctx, tls); + _tls_log_error(conn->ctx); return NULL; }