Bläddra i källkod

tls_gnu_funcs: mute compiler waring

Evgeny Grin (Karlson2k) 1 år sedan
förälder
incheckning
f238dd5c01
2 ändrade filer med 27 tillägg och 6 borttagningar
  1. 18 0
      src/incl_priv/mhd_sys_options.h
  2. 9 6
      src/mhd2/tls_gnu_funcs.c

+ 18 - 0
src/incl_priv/mhd_sys_options.h

@@ -347,6 +347,24 @@
 #  define mhd_DROP_CONST(ptr)  ((void *) ((const void *) (ptr)))
 #endif
 
+/**
+ * Cast signed integer to pointer
+ */
+#if defined(HAVE_INTPTR_T)
+#  define mhd_INT_TO_PTR(i)  ((void *) ((intptr_t) (i)))
+#else
+#  define mhd_INT_TO_PTR(i)  ((void *) (i))
+#endif
+
+/**
+ * Cast unsigned integer to pointer
+ */
+#if defined(HAVE_UINTPTR_T)
+#  define mhd_UINT_TO_PTR(i)  ((void *) ((uintptr_t) (i)))
+#else
+#  define mhd_UINT_TO_PTR(i)  ((void *) (i))
+#endif
+
 
 #if defined(OS390)
 #define _OPEN_THREADS

+ 9 - 6
src/mhd2/tls_gnu_funcs.c

@@ -509,13 +509,16 @@ mhd_tls_gnu_conn_init (const struct mhd_TlsGnuDaemonData *restrict d_tls,
                                 GNUTLS_CRD_CERTIFICATE,
                                 d_tls->cred))
     {
-#ifdef mhd_TLS_GNU_HAS_TRANSP_SET_INT
-      if (sizeof(int) == sizeof(MHD_Socket))
-        gnutls_transport_set_int (c_tls->sess,
-                                  (int) sk->fd);
-#endif /* mhd_TLS_GNU_HAS_TRANSP_SET_INT */
+#if defined(mhd_TLS_GNU_HAS_TRANSP_SET_INT) && defined(MHD_SOCKETS_KIND_POSIX)
+      gnutls_transport_set_int (c_tls->sess,
+                                sk->fd);
+#elif defined(MHD_SOCKETS_KIND_POSIX)
       gnutls_transport_set_ptr (c_tls->sess,
-                                (void *) sk->fd);
+                                mhd_INT_TO_PTR (sk->fd));
+#else  /* MHD_SOCKETS_KIND_WINSOCK */
+      gnutls_transport_set_ptr (c_tls->sess,
+                                mhd_UINT_TO_PTR (sk->fd));
+#endif /* MHD_SOCKETS_KIND_WINSOCK */
 
       /* The basic TLS session properties has been set.
          The rest is optional settings. */