[], [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])],
--- /dev/null
+# 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
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;
}
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) {