mirror of
https://git.savannah.gnu.org/git/inetutils.git
synced 2026-01-12 00:19:39 +08:00
Macro usage for socket lengths.
This commit is contained in:
16
ChangeLog
16
ChangeLog
@@ -1,3 +1,19 @@
|
||||
2012-08-03 Mats Erik Andersson <gnu@gisladisker.se>
|
||||
|
||||
* configure.ac: Check whether `struct sockaddr_in6'
|
||||
contains sin6_len. Correctly check for ut_addr_v6
|
||||
inside `struct utmpx'.
|
||||
* libinetutils/kcmd.c (kcmd) [SHISHI]: Condition on
|
||||
HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN for access to ss_len.
|
||||
(getport): Likewise.
|
||||
* ping/libping.c (ping_set_dest): Access sin_len
|
||||
conditioned on HAVE_STRUCT_SOCKADDR_IN_SIN_LEN.
|
||||
* src/rexec.c (do_rexec): Build INET6 structure
|
||||
guided by HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN.
|
||||
* src/tftp.c (resolve_name): Access ss_len based on
|
||||
HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN.
|
||||
* src/tftpd.c (main): Likewise.
|
||||
|
||||
2012-08-01 Mats Erik Andersson <gnu@gisladisker.se>
|
||||
|
||||
Better adaptions to different UTMP implementations.
|
||||
|
||||
@@ -619,6 +619,9 @@ AC_CHECK_TYPE(sig_atomic_t, , AC_DEFINE([sig_atomic_t], int, [FIXME]),
|
||||
IU_CHECK_MEMBERS([struct sockaddr_in.sin_len], , ,
|
||||
[ #include <sys/types.h>
|
||||
#include <netinet/in.h> ])
|
||||
IU_CHECK_MEMBERS([struct sockaddr_in6.sin6_len], , ,
|
||||
[ #include <sys/types.h>
|
||||
#include <netinet/in.h> ])
|
||||
IU_CHECK_MEMBERS([struct sockaddr_storage.ss_len], , ,
|
||||
[ #include <sys/types.h>
|
||||
#include <netinet/in.h> ])
|
||||
@@ -645,7 +648,7 @@ if test "$ac_cv_header_utmpx_h" = yes; then
|
||||
struct utmpx.ut_exit, struct utmpx.ut_tv,
|
||||
struct utmpx.ut_session, struct utmpx.ut_syslen,
|
||||
struct utmpx.ut_host, struct utmpx.ut_ss,
|
||||
struct utmpx.ut_aadr_v6], , , [#include <utmpx.h>])
|
||||
struct utmpx.ut_addr_v6], , , [#include <utmpx.h>])
|
||||
fi
|
||||
|
||||
IU_CHECK_MEMBERS([struct ifreq.ifr_index,
|
||||
|
||||
@@ -232,7 +232,7 @@ kcmd (Shishi ** h, int *sock, char **ahost, unsigned short rport, char *locuser,
|
||||
{
|
||||
case AF_INET6:
|
||||
len = sizeof (struct sockaddr_in6);
|
||||
# ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
|
||||
# ifdef HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN
|
||||
sin.ss_len = len;
|
||||
# endif
|
||||
memcpy (&((struct sockaddr_in6 *) &sin)->sin6_addr,
|
||||
@@ -242,7 +242,7 @@ kcmd (Shishi ** h, int *sock, char **ahost, unsigned short rport, char *locuser,
|
||||
case AF_INET:
|
||||
default:
|
||||
len = sizeof (struct sockaddr_in);
|
||||
# ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
|
||||
# ifdef HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN
|
||||
sin.ss_len = len;
|
||||
# endif
|
||||
memcpy (&((struct sockaddr_in *) &sin)->sin_addr,
|
||||
@@ -500,7 +500,7 @@ getport (int *alport, int af)
|
||||
sin.ss_family = af;
|
||||
len = (af == AF_INET6) ? sizeof (struct sockaddr_in6)
|
||||
: sizeof (struct sockaddr_in);
|
||||
# ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
|
||||
# ifdef HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN
|
||||
sin.ss_len = len;
|
||||
# endif
|
||||
|
||||
|
||||
@@ -266,7 +266,7 @@ ping_set_dest (PING * ping, char *host)
|
||||
{
|
||||
struct sockaddr_in *s_in = &ping->ping_dest.ping_sockaddr;
|
||||
s_in->sin_family = AF_INET;
|
||||
#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
|
||||
#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
|
||||
s_in->sin_len = sizeof (*s_in);
|
||||
#endif
|
||||
if (inet_aton (host, &s_in->sin_addr))
|
||||
|
||||
@@ -295,7 +295,7 @@ do_rexec (struct arguments *arguments)
|
||||
((struct sockaddr_in *) &serv_addr)->sin_port = arguments->err_port;
|
||||
break;
|
||||
case AF_INET6:
|
||||
#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
|
||||
#ifdef HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN
|
||||
((struct sockaddr_in6 *) &serv_addr)->sin6_len = addrlen;
|
||||
#endif
|
||||
((struct sockaddr_in6 *) &serv_addr)->sin6_family = addr.ss_family;
|
||||
|
||||
@@ -328,7 +328,7 @@ resolve_name (char *name)
|
||||
|
||||
memset (&ss, 0, sizeof (ss));
|
||||
ss.ss_family = ai->ai_family;
|
||||
#if HAVE_STRUCT_SOCKADDR_SA_LEN
|
||||
#if HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN
|
||||
ss.ss_len = ai->ai_addrlen;
|
||||
#endif
|
||||
if (bind (f, (struct sockaddr *) &ss, ai->ai_addrlen))
|
||||
|
||||
@@ -288,7 +288,7 @@ main (int argc, char *argv[])
|
||||
}
|
||||
memset (&sin, 0, sizeof (sin));
|
||||
sin.ss_family = from.ss_family;
|
||||
#if HAVE_STRUCT_SOCKADDR_SA_LEN
|
||||
#if HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN
|
||||
sin.ss_len = from.ss_len;
|
||||
#endif
|
||||
if (bind (peer, (struct sockaddr *) &sin, fromlen) < 0)
|
||||
|
||||
Reference in New Issue
Block a user