summaryrefslogtreecommitdiff
path: root/zebra/irdp_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/irdp_main.c')
-rw-r--r--zebra/irdp_main.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/zebra/irdp_main.c b/zebra/irdp_main.c
index c2411d083f..771ae796e1 100644
--- a/zebra/irdp_main.c
+++ b/zebra/irdp_main.c
@@ -28,7 +28,7 @@
*/
/*
- * Thanks to Jens Låås at Swedish University of Agricultural Sciences
+ * Thanks to Jens Laas at Swedish University of Agricultural Sciences
* for reviewing and tests.
*/
@@ -51,6 +51,7 @@
#include "thread.h"
#include "privs.h"
#include "libfrr.h"
+#include "lib_errors.h"
#include "version.h"
#include "zebra/interface.h"
#include "zebra/rtadv.h"
@@ -80,16 +81,12 @@ int irdp_sock_init(void)
int save_errno;
int sock;
- if (zserv_privs.change(ZPRIVS_RAISE))
- zlog_err("irdp_sock_init: could not raise privs, %s",
- safe_strerror(errno));
+ frr_elevate_privs(&zserv_privs) {
- sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
- save_errno = errno;
+ sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
+ save_errno = errno;
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog_err("irdp_sock_init: could not lower privs, %s",
- safe_strerror(errno));
+ }
if (sock < 0) {
zlog_warn("IRDP: can't create irdp socket %s",