summaryrefslogtreecommitdiffstats
path: root/ripd/rip_interface.c
diff options
context:
space:
mode:
authorpaul <paul>2003-06-04 13:59:38 +0000
committerpaul <paul>2003-06-04 13:59:38 +0000
commita67e0eb96fd28f7ca2deb9b00c251969becc310d (patch)
tree90408e2030b663f539efe8d6b9a8fbbdbcda097e /ripd/rip_interface.c
parent1023023aceee2b00a7b66201a723e8c20f26957c (diff)
downloadquagga-a67e0eb96fd28f7ca2deb9b00c251969becc310d.tar.bz2
quagga-a67e0eb96fd28f7ca2deb9b00c251969becc310d.tar.xz
2003-06-04 Paul Jakma <paul@dishone.st>
* Merge of zebra privileges
Diffstat (limited to 'ripd/rip_interface.c')
-rw-r--r--ripd/rip_interface.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/ripd/rip_interface.c b/ripd/rip_interface.c
index 8ec96ae1..c3889295 100644
--- a/ripd/rip_interface.c
+++ b/ripd/rip_interface.c
@@ -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;
}