diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2008-08-17 17:01:44 +0100 |
---|---|---|
committer | Paul Jakma <paul@quagga.net> | 2008-08-22 19:56:25 +0100 |
commit | 4c699477d24e7104893130d072963df5cea17214 (patch) | |
tree | 9e4336586dd07868f905c87a4a7479e2b8b0795f /zebra/rt_netlink.c | |
parent | 898987e976e8f7a50a4549475ab4970a85895f31 (diff) |
[zebra:linux] netlink: no need to change privs for receive
2008-06-17 Stephen Hemminger <stephen.hemminger@vyatta.com>
* rt_netlink.c: (netlink_parse_info) Linux doesn't check privledges
on receive, so avoid the overhead of lowering and raising the
priviledges on each received message
Signed-off-by: Paul Jakma <paul@quagga.net>
Diffstat (limited to 'zebra/rt_netlink.c')
-rw-r--r-- | zebra/rt_netlink.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c index 904367e0..05254498 100644 --- a/zebra/rt_netlink.c +++ b/zebra/rt_netlink.c @@ -285,25 +285,16 @@ netlink_parse_info (int (*filter) (struct sockaddr_nl *, struct nlmsghdr *), struct sockaddr_nl snl; struct msghdr msg = { (void *) &snl, sizeof snl, &iov, 1, NULL, 0, 0 }; struct nlmsghdr *h; - int save_errno; - - if (zserv_privs.change (ZPRIVS_RAISE)) - zlog (NULL, LOG_ERR, "Can't raise privileges"); status = recvmsg (nl->sock, &msg, 0); - save_errno = errno; - - if (zserv_privs.change (ZPRIVS_LOWER)) - zlog (NULL, LOG_ERR, "Can't lower privileges"); - if (status < 0) { - if (save_errno == EINTR) + if (errno == EINTR) continue; - if (save_errno == EWOULDBLOCK || save_errno == EAGAIN) + if (errno == EWOULDBLOCK || errno == EAGAIN) break; zlog (NULL, LOG_ERR, "%s recvmsg overrun: %s", - nl->name, safe_strerror(save_errno)); + nl->name, safe_strerror(errno)); continue; } |