]> git.puffer.fish Git - mirror/frr.git/commitdiff
2005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
authorajs <ajs>
Sun, 30 Jan 2005 17:24:02 +0000 (17:24 +0000)
committerajs <ajs>
Sun, 30 Jan 2005 17:24:02 +0000 (17:24 +0000)
* ospf_network.c: (ospf_sock_init) Save errno before calling
  ospfd_privs.change.

ospfd/ChangeLog
ospfd/ospf_network.c

index 1ff7c6dc87f51546addb0e592982faa412e180ef..deefce54734d0e1f5f000c2717c9f33e69783266 100644 (file)
@@ -1,3 +1,8 @@
+2005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * ospf_network.c: (ospf_sock_init) Save errno before calling
+         ospfd_privs.change.
+
 2005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
        * ospf_packet.c: (ospf_packet_add) If oi->obuf is NULL, print
index 035993e2f2358b854ddcbc3c9eec7665eadfc67c..c2c8b133e19c0fc6741436e28748866af109e571 100644 (file)
@@ -177,11 +177,12 @@ ospf_sock_init (void)
   ospf_sock = socket (AF_INET, SOCK_RAW, IPPROTO_OSPFIGP);
   if (ospf_sock < 0)
     {
+      int save_errno = errno;
       if ( ospfd_privs.change (ZPRIVS_LOWER) )
         zlog_err ("ospf_sock_init: could not lower privs, %s",
                    safe_strerror (errno) );
-      zlog_err ("ospf_read_sock_init: socket: %s", safe_strerror (errno));
-      exit(-1);
+      zlog_err ("ospf_read_sock_init: socket: %s", safe_strerror (save_errno));
+      exit(1);
     }
     
 #ifdef IP_HDRINCL
@@ -189,10 +190,12 @@ ospf_sock_init (void)
   ret = setsockopt (ospf_sock, IPPROTO_IP, IP_HDRINCL, &hincl, sizeof (hincl));
   if (ret < 0)
     {
+      int save_errno = errno;
       if ( ospfd_privs.change (ZPRIVS_LOWER) )
         zlog_err ("ospf_sock_init: could not lower privs, %s",
                    safe_strerror (errno) );
-      zlog_warn ("Can't set IP_HDRINCL option for fd %d",ospf_sock);
+      zlog_warn ("Can't set IP_HDRINCL option for fd %d: %s",
+                ospf_sock, safe_strerror(save_errno));
     }
 #elif defined (IPTOS_PREC_INTERNETCONTROL)
 #warning "IP_HDRINCL not available on this system"
@@ -203,10 +206,12 @@ ospf_sock_init (void)
                    (char *) &tos, sizeof (int));
   if (ret < 0)
     {
+      int save_errno = errno;
       if ( ospfd_privs.change (ZPRIVS_LOWER) )
         zlog_err ("ospf_sock_init: could not lower privs, %s",
                    safe_strerror (errno) );
-      zlog_warn ("can't set sockopt IP_TOS %d to socket %d", tos, ospf_sock);
+      zlog_warn ("can't set sockopt IP_TOS %d to socket %d: %s",
+                tos, ospf_sock, safe_strerror(save_errno));
       close (ospf_sock);       /* Prevent sd leak. */
       return ret;
     }