X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=isisd%2Fisis_dlpi.c;h=54a19ad23991138096685f6749ff06114a113679;hb=c52e2ecf95a9be318912caacc0851d9307e679f7;hp=718f3a8982a4f69a74086e73fff3bef9ec3137d5;hpb=d7c0a89a3a5697783a6dd89333ab660074790890;p=mirror_frr.git diff --git a/isisd/isis_dlpi.c b/isisd/isis_dlpi.c index 718f3a898..54a19ad23 100644 --- a/isisd/isis_dlpi.c +++ b/isisd/isis_dlpi.c @@ -36,6 +36,7 @@ #include "network.h" #include "stream.h" #include "if.h" +#include "lib_errors.h" #include "isisd/dict.h" #include "isisd/isis_constants.h" @@ -467,31 +468,26 @@ int isis_sock_init(struct isis_circuit *circuit) { int retval = ISIS_OK; - if (isisd_privs.change(ZPRIVS_RAISE)) - zlog_err("%s: could not raise privs, %s", __func__, - safe_strerror(errno)); + frr_elevate_privs(&isisd_privs) { - retval = open_dlpi_dev(circuit); + retval = open_dlpi_dev(circuit); - if (retval != ISIS_OK) { - zlog_warn("%s: could not initialize the socket", __func__); - goto end; - } + if (retval != ISIS_OK) { + zlog_warn("%s: could not initialize the socket", + __func__); + break; + } - if (circuit->circ_type == CIRCUIT_T_BROADCAST) { - circuit->tx = isis_send_pdu_bcast; - circuit->rx = isis_recv_pdu_bcast; - } else { - zlog_warn("isis_sock_init(): unknown circuit type"); - retval = ISIS_WARNING; - goto end; + if (circuit->circ_type == CIRCUIT_T_BROADCAST) { + circuit->tx = isis_send_pdu_bcast; + circuit->rx = isis_recv_pdu_bcast; + } else { + zlog_warn("isis_sock_init(): unknown circuit type"); + retval = ISIS_WARNING; + break; + } } -end: - if (isisd_privs.change(ZPRIVS_LOWER)) - zlog_err("%s: could not lower privs, %s", __func__, - safe_strerror(errno)); - return retval; }