]> ruderich.org/simon Gitweb - tlsproxy/tlsproxy.git/commitdiff
Use gnutls_transport_set_int() if available.
authorSimon Ruderich <simon@ruderich.org>
Thu, 8 Aug 2013 15:48:08 +0000 (17:48 +0200)
committerSimon Ruderich <simon@ruderich.org>
Thu, 8 Aug 2013 15:48:08 +0000 (17:48 +0200)
Prevents an unnecessary warning (int to pointer cast).

Makefile.am
configure.ac
m4/ax_check_lib_func.m4 [new file with mode: 0644]
src/connection.c
tests/client.c

index 3592e53a9d87a7d1a134f5e7fa348c601ed66245..931403bc41492c09b116960f084f497937862d8c 100644 (file)
@@ -1 +1,3 @@
 SUBDIRS = man src tests
+
+ACLOCAL_AMFLAGS = -I m4
index 52ae461d495187e321ff9e276d9ea62dd17cf33e..bab248a30e72e621db1f35da20a7a3955906a450 100644 (file)
@@ -40,6 +40,8 @@ AC_CHECK_LIB([pthread], [pthread_create],
              [], [AC_MSG_ERROR([pthread is required])])
 AC_CHECK_LIB([gnutls], [gnutls_certificate_verify_peers2],
              [], [AC_MSG_ERROR([GnuTLS is required])])
+dnl Check for additional GnuTLS functions.
+AX_CHECK_LIB_FUNC([gnutls],[gnutls_transport_set_int2])
 
 AC_ARG_ENABLE([debug],
               [AS_HELP_STRING([--enable-debug],[enable debug output])],
diff --git a/m4/ax_check_lib_func.m4 b/m4/ax_check_lib_func.m4
new file mode 100644 (file)
index 0000000..1133da7
--- /dev/null
@@ -0,0 +1,27 @@
+# Check if a function is available in a library.
+
+# Copyright (C) 2013  Simon Ruderich
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+AC_DEFUN([AX_CHECK_LIB_FUNC], [
+    AC_CHECK_LIB([$1], [$2], [
+        AC_DEFINE(
+            m4_toupper([HAVE_$2]), 1,
+            [Define to 1 if you have the `$2' function ($1 library).] dnl `
+        )
+    ])
+])
+
+# vim: ft=config
index 28f2e699f1d68ae2a41e7d3a36c4cf0f3adb03c1..aa42bfd2bffb60b9e8011b03a11c28bbbaf7013a 100644 (file)
@@ -491,7 +491,12 @@ static int initialize_tls_session_both(int flags,
         return -1;
     }
 
+#ifdef HAVE_GNUTLS_TRANSPORT_SET_INT2
+    /* gnutls_transport_set_int() is a macro. */
+    gnutls_transport_set_int(*session, peer_socket);
+#else
     gnutls_transport_set_ptr(*session, (gnutls_transport_ptr_t)peer_socket);
+#endif
 
     return 0;
 }
index 028189a24d44843c932955c5bcf0b6a6addc5975..fe10c8ce8b1f0983375797b1d44dcc9c548d1abe 100644 (file)
@@ -115,7 +115,12 @@ int main (int argc, char *argv[]) {
         return EXIT_FAILURE;
     }
 
+#ifdef HAVE_GNUTLS_TRANSPORT_SET_INT2
+    /* gnutls_transport_set_int() is a macro. */
+    gnutls_transport_set_int(session, server);
+#else
     gnutls_transport_set_ptr(session, (gnutls_transport_ptr_t)server);
+#endif
 
     result = gnutls_handshake(session);
     if (result != GNUTLS_E_SUCCESS) {