]> arthur.barton.de Git - ngircd.git/blobdiff - src/ngircd/conn-ssl.c
conn-ssl.c: work around gnutls API problems on 64 bit platforms
[ngircd.git] / src / ngircd / conn-ssl.c
index 8995adbe4f4e8f8344597833c1d6e7627b4d76dc..cd7abd4bd38dcf79d688e448a9acecb98234dad5 100644 (file)
@@ -400,7 +400,13 @@ ConnSSL_Init_SSL(CONNECTION *c)
                Log(LOG_ERR, "gnutls_set_default_priority: %s", gnutls_strerror(ret));
                ConnSSL_Free(c);
        }
-       gnutls_transport_set_ptr(c->ssl_state.gnutls_session, (gnutls_transport_ptr_t) c->sock);
+       /*
+        * The intermediate (long) cast is here to avoid a warning like:
+        * "cast to pointer from integer of different size" on 64-bit platforms.
+        * There doesn't seem to be an alternate GNUTLS API we could use instead, see e.g.
+        * http://www.mail-archive.com/help-gnutls@gnu.org/msg00286.html
+        */
+       gnutls_transport_set_ptr(c->ssl_state.gnutls_session, (gnutls_transport_ptr_t) (long) c->sock);
        ret = gnutls_credentials_set(c->ssl_state.gnutls_session, GNUTLS_CRD_CERTIFICATE, x509_cred);
        if (ret < 0) {
                Log(LOG_ERR, "gnutls_credentials_set: %s", gnutls_strerror(ret));
@@ -539,7 +545,6 @@ ConnSSL_LogCertInfo( CONNECTION *c )
                SSL_get_version(ssl), SSL_get_cipher(ssl), c->sock);
 #endif
 #ifdef HAVE_LIBGNUTLS
-       gnutls_credentials_type_t cred;
        gnutls_session_t sess = c->ssl_state.gnutls_session;
        gnutls_cipher_algorithm_t cipher = gnutls_cipher_get(sess);