From 4c699477d24e7104893130d072963df5cea17214 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Sun, 17 Aug 2008 17:01:44 +0100 Subject: [PATCH] [zebra:linux] netlink: no need to change privs for receive 2008-06-17 Stephen Hemminger * 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 --- zebra/rt_netlink.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c index 904367e..0525449 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; } -- 2.11.4.GIT