mirror of
https://github.com/osmarks/ngircd.git
synced 2024-12-13 10:20:28 +00:00
Check for sockaddr_in.sin_len and initialize it
Test for sockaddr_in.sin_len and initialize it to the correct value which some systems (notably Mac OS X) require. Note: this code path is only relevant when not using getaddrinfo().
This commit is contained in:
parent
d5f80b2a8d
commit
5b1efaee67
@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# ngIRCd -- The Next Generation IRC Daemon
|
# ngIRCd -- The Next Generation IRC Daemon
|
||||||
# Copyright (c)2001-2008 Alexander Barton <alex@barton.de>
|
# Copyright (c)2001-2009 Alexander Barton <alex@barton.de>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -33,6 +33,7 @@ AH_TEMPLATE([IRCPLUS], [Define if IRC+ protocol should be used])
|
|||||||
AH_TEMPLATE([WANT_IPV6], [Define if IPV6 protocol should be enabled])
|
AH_TEMPLATE([WANT_IPV6], [Define if IPV6 protocol should be enabled])
|
||||||
AH_TEMPLATE([ZEROCONF], [Define if support for Zeroconf should be included])
|
AH_TEMPLATE([ZEROCONF], [Define if support for Zeroconf should be included])
|
||||||
AH_TEMPLATE([IDENTAUTH], [Define if the server should do IDENT requests])
|
AH_TEMPLATE([IDENTAUTH], [Define if the server should do IDENT requests])
|
||||||
|
AH_TEMPLATE([HAVE_sockaddr_in_len], [Define if sockaddr_in.sin_len exists])
|
||||||
|
|
||||||
AH_TEMPLATE([TARGET_OS], [Target operating system name])
|
AH_TEMPLATE([TARGET_OS], [Target operating system name])
|
||||||
AH_TEMPLATE([TARGET_VENDOR], [Target system vendor])
|
AH_TEMPLATE([TARGET_VENDOR], [Target system vendor])
|
||||||
@ -124,6 +125,9 @@ AC_TRY_COMPILE([
|
|||||||
AC_TYPE_SIGNAL
|
AC_TYPE_SIGNAL
|
||||||
AC_TYPE_SIZE_T
|
AC_TYPE_SIZE_T
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([struct sockaddr_in.sin_len], AC_DEFINE(HAVE_sockaddr_in_len),,
|
||||||
|
[#include <arpa/inet.h>])
|
||||||
|
|
||||||
# -- Libraries --
|
# -- Libraries --
|
||||||
|
|
||||||
AC_CHECK_LIB(UTIL,memmove)
|
AC_CHECK_LIB(UTIL,memmove)
|
||||||
|
@ -51,6 +51,10 @@ ng_ipaddr_init(ng_ipaddr_t *addr, const char *ip_str, UINT16 port)
|
|||||||
return ret == 0;
|
return ret == 0;
|
||||||
#else /* HAVE_GETADDRINFO */
|
#else /* HAVE_GETADDRINFO */
|
||||||
assert(ip_str);
|
assert(ip_str);
|
||||||
|
memset(addr, 0, sizeof *addr);
|
||||||
|
#ifdef HAVE_sockaddr_in_len
|
||||||
|
addr->sin4.sin_len = sizeof(addr->sin4);
|
||||||
|
#endif
|
||||||
addr->sin4.sin_family = AF_INET;
|
addr->sin4.sin_family = AF_INET;
|
||||||
# ifdef HAVE_INET_ATON
|
# ifdef HAVE_INET_ATON
|
||||||
if (inet_aton(ip_str, &addr->sin4.sin_addr) == 0)
|
if (inet_aton(ip_str, &addr->sin4.sin_addr) == 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user