diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ChangeLog | 6 | ||||
-rw-r--r-- | lib/sockopt.c | 13 |
2 files changed, 14 insertions, 5 deletions
diff --git a/lib/ChangeLog b/lib/ChangeLog index cc5f8673..eaf459de 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,5 +1,11 @@ 2004-12-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu> + * 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 <ajschorr@alumni.princeton.edu> + * thread.c: (funcname_thread_add_timer_msec) Reduce overflow risk. 2004-12-21 Paul Jakma <paul.jakma@sun.com> 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; } |