]> git.proxmox.com Git - mirror_frr.git/blobdiff - isisd/isis_pfpacket.c
lib: enforce vrf_name_to_id by returning default_vrf when name is null
[mirror_frr.git] / isisd / isis_pfpacket.c
index f27ca2889f96dbfd6c5de1193ab6a76d790488c5..2f6526bc5efa551ac4fa6fa80b079db0716dc293 100644 (file)
@@ -185,35 +185,30 @@ int isis_sock_init(struct isis_circuit *circuit)
 {
        int retval = ISIS_OK;
 
-       if (isisd_privs.change(ZPRIVS_RAISE))
-               zlog_ferr(LIB_ERR_PRIVILEGES, "%s: could not raise privs, %s",
-                         __func__, safe_strerror(errno));
+       frr_elevate_privs(&isisd_privs) {
 
-       retval = open_packet_socket(circuit);
+               retval = open_packet_socket(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;
+               }
 
        /* Assign Rx and Tx callbacks are based on real if type */
-       if (if_is_broadcast(circuit->interface)) {
-               circuit->tx = isis_send_pdu_bcast;
-               circuit->rx = isis_recv_pdu_bcast;
-       } else if (if_is_pointopoint(circuit->interface)) {
-               circuit->tx = isis_send_pdu_p2p;
-               circuit->rx = isis_recv_pdu_p2p;
-       } else {
-               zlog_warn("isis_sock_init(): unknown circuit type");
-               retval = ISIS_WARNING;
-               goto end;
+               if (if_is_broadcast(circuit->interface)) {
+                       circuit->tx = isis_send_pdu_bcast;
+                       circuit->rx = isis_recv_pdu_bcast;
+               } else if (if_is_pointopoint(circuit->interface)) {
+                       circuit->tx = isis_send_pdu_p2p;
+                       circuit->rx = isis_recv_pdu_p2p;
+               } else {
+                       zlog_warn("isis_sock_init(): unknown circuit type");
+                       retval = ISIS_WARNING;
+                       break;
+               }
        }
 
-end:
-       if (isisd_privs.change(ZPRIVS_LOWER))
-               zlog_ferr(LIB_ERR_PRIVILEGES, "%s: could not lower privs, %s",
-                         __func__, safe_strerror(errno));
-
        return retval;
 }