From 1d75c8c3b28db50bc53771d5fac37b809d37b614 Mon Sep 17 00:00:00 2001 From: ajs Date: Tue, 28 Dec 2004 21:43:17 +0000 Subject: 2004-12-28 Andrew J. Schorr * sockopt.c: (setsockopt_ipv4_ifindex) Improve error message. When neither IP_PKTINFO nor IP_RECVIF is defined, make return value deterministic (-1). --- lib/ChangeLog | 6 ++++++ lib/sockopt.c | 13 ++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/ChangeLog b/lib/ChangeLog index cc5f8673..eaf459de 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,9 @@ +2004-12-28 Andrew J. Schorr + + * sockopt.c: (setsockopt_ipv4_ifindex) Improve error message. + When neither IP_PKTINFO nor IP_RECVIF is defined, make return value + deterministic (-1). + 2004-12-28 Andrew J. Schorr * thread.c: (funcname_thread_add_timer_msec) Reduce overflow risk. diff --git a/lib/sockopt.c b/lib/sockopt.c index 786e1528..3a8033cc 100644 --- a/lib/sockopt.c +++ b/lib/sockopt.c @@ -242,17 +242,20 @@ setsockopt_ipv4_ifindex (int sock, int val) int ret; #if defined (IP_PKTINFO) - ret = setsockopt (sock, IPPROTO_IP, IP_PKTINFO, &val, sizeof (val)); + if ((ret = setsockopt (sock, IPPROTO_IP, IP_PKTINFO, &val, sizeof (val))) < 0) + zlog_warn ("Can't set IP_PKTINFO option for fd %d to %d: %s", + sock,val,safe_strerror(errno)); #elif defined (IP_RECVIF) - ret = setsockopt (sock, IPPROTO_IP, IP_RECVIF, &val, sizeof (val)); + if ((ret = setsockopt (sock, IPPROTO_IP, IP_RECVIF, &val, sizeof (val))) < 0) + zlog_warn ("Can't set IP_RECVIF option for fd %d to %d: %s", + sock,val,safe_strerror(errno)); #else #warning "Neither IP_PKTINFO nor IP_RECVIF is available." #warning "Will not be able to receive link info." #warning "Things might be seriously broken.." + /* XXX Does this ever happen? Should there be a zlog_warn message here? */ + ret = -1; #endif - - if (ret < 0) - zlog_warn ("Can't set IP_PKTINFO option"); return ret; } -- cgit v1.2.1