Permalink
Browse files

Enhance configure socklen_t (#640)

Patch by: michaelortmann

Replace handcrafted code with GNU Autoconf Archive Macro.
  • Loading branch information...
michaelortmann authored and vanosg committed Oct 14, 2018
1 parent 9d4525a commit 90661321dfac2b44da5f4f8f47e7124286125795
Showing with 61 additions and 39 deletions.
  1. +1 −34 aclocal.m4
  2. +1 −1 configure.ac
  3. +59 −0 m4/ax_type_socklen_t.m4
  4. +0 −4 src/eggdrop.h
@@ -23,6 +23,7 @@ builtin(include,m4/tcl.m4)
dnl Load gnu autoconf archive macros
builtin(include,m4/ax_create_stdint_h.m4)
builtin(include,m4/ax_lib_socket_nsl.m4)
builtin(include,m4/ax_type_socklen_t.m4)
dnl
@@ -283,40 +284,6 @@ dnl Checks for types and functions.
dnl
dnl EGG_CHECK_SOCKLEN_T()
dnl
dnl Check for the socklen_t type.
dnl
AC_DEFUN([EGG_CHECK_SOCKLEN_T],
[
AC_CACHE_CHECK([for socklen_t], egg_cv_socklen_t, [
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <unistd.h>
#include <sys/param.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
]],[[
socklen_t test = 55;
if (test != 55)
return(1);
return(0);
]])], [
egg_cv_socklen_t="yes"
], [
egg_cv_socklen_t="no"
])
])
if test "$egg_cv_socklen_t" = yes; then
AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define to 1 if you have the `socklen_t' type.])
fi
])
dnl EGG_FUNC_VPRINTF()
dnl
AC_DEFUN([EGG_FUNC_VPRINTF],
@@ -103,7 +103,7 @@ AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_STRUCT_TIMEZONE
AC_C_VOLATILE
EGG_CHECK_SOCKLEN_T
AX_TYPE_SOCKLEN_T
# Create stdint.h C99 compatibility header.
@@ -0,0 +1,59 @@
# ===========================================================================
# https://www.gnu.org/software/autoconf-archive/ax_type_socklen_t.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_TYPE_SOCKLEN_T
#
# DESCRIPTION
#
# Check whether sys/socket.h defines type socklen_t. Please note that some
# systems require sys/types.h to be included before sys/socket.h can be
# compiled.
#
# LICENSE
#
# Copyright (c) 2008 Lars Brinkhoff <lars@nocrew.org>
#
# 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 2 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 <https://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 8
AU_ALIAS([TYPE_SOCKLEN_T], [AX_TYPE_SOCKLEN_T])
AC_DEFUN([AX_TYPE_SOCKLEN_T],
[AC_CACHE_CHECK([for socklen_t], [ac_cv_ax_type_socklen_t],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
#include <sys/socket.h>]],
[[socklen_t len = (socklen_t) 42; return (!len);]])],
[ac_cv_ax_type_socklen_t=yes],
[ac_cv_ax_type_socklen_t=no])
])
if test $ac_cv_ax_type_socklen_t != yes; then
AC_DEFINE(socklen_t, int, [Substitute for socklen_t])
fi
])
@@ -269,10 +269,6 @@
# define sigemptyset(x) ((*(int *)(x))=0)
#endif
#ifndef HAVE_SOCKLEN_T
typedef int socklen_t;
#endif
#ifdef TLS
# include <openssl/ssl.h>
#endif

0 comments on commit 9066132

Please sign in to comment.