From 98f5163c3fb005af35f9f3a4bc4ee60d4f3ee741 Mon Sep 17 00:00:00 2001 From: paul Date: Mon, 25 Oct 2004 14:19:15 +0000 Subject: 2004-10-25 Paul Jakma * Update with fix in debian bug id 222930. * bgp_main.c: Add ZCAP_RAW, needed to bind to interfaces. bgp_network.c: (....) raise/lower privs around call to SO_BINDTODEVICE sockopt. --- bgpd/bgp_network.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'bgpd/bgp_network.c') diff --git a/bgpd/bgp_network.c b/bgpd/bgp_network.c index 85e12d94..84311e2e 100644 --- a/bgpd/bgp_network.c +++ b/bgpd/bgp_network.c @@ -133,8 +133,15 @@ bgp_bind (struct peer *peer) strncpy ((char *)&ifreq.ifr_name, peer->ifname, sizeof (ifreq.ifr_name)); + if ( bgpd_privs.change (ZPRIVS_RAISE) ) + zlog_err ("bgp_bind: could not raise privs"); + ret = setsockopt (peer->fd, SOL_SOCKET, SO_BINDTODEVICE, &ifreq, sizeof (ifreq)); + + if (bgpd_privs.change (ZPRIVS_LOWER) ) + zlog_err ("bgp_bind: could not lower privs"); + if (ret < 0) { zlog (peer->log, LOG_INFO, "bind to interface %s failed", peer->ifname); -- cgit v1.2.1