From: Simon Ruderich Date: Thu, 8 Aug 2013 15:48:08 +0000 (+0200) Subject: Use gnutls_transport_set_int() if available. X-Git-Url: https://ruderich.org/simon/gitweb/?a=commitdiff_plain;h=c51f4531e09a0fcf27aa9f3b5150fbadcf4f1a79;p=tlsproxy%2Ftlsproxy.git Use gnutls_transport_set_int() if available. Prevents an unnecessary warning (int to pointer cast). --- diff --git a/Makefile.am b/Makefile.am index 3592e53..931403b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1 +1,3 @@ SUBDIRS = man src tests + +ACLOCAL_AMFLAGS = -I m4 diff --git a/configure.ac b/configure.ac index 52ae461..bab248a 100644 --- a/configure.ac +++ b/configure.ac @@ -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 index 0000000..1133da7 --- /dev/null +++ b/m4/ax_check_lib_func.m4 @@ -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 . + +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 diff --git a/src/connection.c b/src/connection.c index 28f2e69..aa42bfd 100644 --- a/src/connection.c +++ b/src/connection.c @@ -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; } diff --git a/tests/client.c b/tests/client.c index 028189a..fe10c8c 100644 --- a/tests/client.c +++ b/tests/client.c @@ -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) {