]> git.puffer.fish Git - matthieu/frr.git/commitdiff
2004-12-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
authorajs <ajs>
Tue, 28 Dec 2004 21:43:17 +0000 (21:43 +0000)
committerajs <ajs>
Tue, 28 Dec 2004 21:43:17 +0000 (21:43 +0000)
* sockopt.c: (setsockopt_ipv4_ifindex) Improve error message.
  When neither IP_PKTINFO nor IP_RECVIF is defined, make return value
  deterministic (-1).

lib/ChangeLog
lib/sockopt.c

index cc5f86731af875d6cea1b4c887eeb2403dcde793..eaf459de00edcfe65b17271c5957d8b54f02bc4c 100644 (file)
@@ -1,3 +1,9 @@
+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.
index 786e1528d25b1e32c5b72a98cffb16c2fa84eecf..3a8033cc031f1c4f79e502872b3bb052d638b8f7 100644 (file)
@@ -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;
 }