]> git.proxmox.com Git - mirror_frr.git/blobdiff - ripd/rip_interface.c
2003-06-04 Paul Jakma <paul@dishone.st>
[mirror_frr.git] / ripd / rip_interface.c
index 8ec96ae16cc9d9d12ce0d5dcd8ccb3805e2cd250..c38892955233cf341c25d1d4ee007210a7e2b219 100644 (file)
@@ -34,6 +34,7 @@
 #include "zclient.h"
 #include "filter.h"
 #include "sockopt.h"
+#include "privs.h"
 
 #include "zebra/connected.h"
 
@@ -56,6 +57,8 @@ struct message ri_version_msg[] =
   {0,                      NULL}
 };
 
+extern struct zebra_privs_t ripd_privs;
+
 /* RIP enabled network vector. */
 vector rip_enable_interface;
 
@@ -177,6 +180,9 @@ rip_interface_multicast_set (int sock, struct interface *ifp)
          from.sin_len = sizeof (struct sockaddr_in);
 #endif /* HAVE_SIN_LEN */
 
+    if (ripd_privs.change (ZPRIVS_RAISE))
+      zlog_err ("rip_interface_multicast_set: could not raise privs");
+      
          ret = bind (sock, (struct sockaddr *) & from, 
                      sizeof (struct sockaddr_in));
          if (ret < 0)
@@ -185,6 +191,9 @@ rip_interface_multicast_set (int sock, struct interface *ifp)
              return;
            }
 
+    if (ripd_privs.change (ZPRIVS_LOWER))
+        zlog_err ("rip_interface_multicast_set: could not lower privs");
+
          return;
 
        }