summaryrefslogtreecommitdiff
path: root/zebra/rt_socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/rt_socket.c')
-rw-r--r--zebra/rt_socket.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/zebra/rt_socket.c b/zebra/rt_socket.c
index 346699198f..c0ad87ce39 100644
--- a/zebra/rt_socket.c
+++ b/zebra/rt_socket.c
@@ -33,6 +33,7 @@
#include "log.h"
#include "privs.h"
#include "vxlan.h"
+#include "lib_errors.h"
#include "zebra/debug.h"
#include "zebra/rib.h"
@@ -211,7 +212,8 @@ static int kernel_rtm_ipv4(int cmd, const struct prefix *p,
*/
case ZEBRA_ERR_RTEXIST:
if (cmd != RTM_ADD)
- zlog_err(
+ flog_err(
+ LIB_ERR_SYSTEM_CALL,
"%s: rtm_write() returned %d for command %d",
__func__, error, cmd);
continue;
@@ -224,7 +226,8 @@ static int kernel_rtm_ipv4(int cmd, const struct prefix *p,
case ZEBRA_ERR_RTNOEXIST:
case ZEBRA_ERR_RTUNREACH:
default:
- zlog_err(
+ flog_err(
+ LIB_ERR_SYSTEM_CALL,
"%s: %s: rtm_write() unexpectedly returned %d for command %s",
__func__,
prefix2str(p, prefix_buf,
@@ -396,21 +399,19 @@ enum dp_req_result kernel_route_rib(struct route_node *rn,
int route = 0;
if (src_p && src_p->prefixlen) {
- zlog_err("route add: IPv6 sourcedest routes unsupported!");
+ zlog_warn("%s: IPv6 sourcedest routes unsupported!", __func__);
return DP_REQUEST_FAILURE;
}
- if (zserv_privs.change(ZPRIVS_RAISE))
- zlog_err("Can't raise privileges");
+ frr_elevate_privs(&zserv_privs) {
- if (old)
- route |= kernel_rtm(RTM_DELETE, p, old);
+ if (old)
+ route |= kernel_rtm(RTM_DELETE, p, old);
- if (new)
- route |= kernel_rtm(RTM_ADD, p, new);
+ if (new)
+ route |= kernel_rtm(RTM_ADD, p, new);
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog_err("Can't lower privileges");
+ }
if (new) {
kernel_route_rib_pass_fail(