From: Stephen Hemminger Date: Sun, 17 Aug 2008 16:01:44 +0000 (+0100) Subject: [zebra:linux] netlink: no need to change privs for receive X-Git-Tag: frr-2.0-rc1~2379 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=4c699477d24e7104893130d072963df5cea17214;p=mirror%2Ffrr.git [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 --- diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c index 904367e0d5..0525449877 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; }