]> git.proxmox.com Git - mirror_frr.git/blobdiff - ripd/ripd.c
*: use frr_elevate_privs() (1/2: coccinelle)
[mirror_frr.git] / ripd / ripd.c
index 8032cf2ec50c1f6e612dbab581afc0684f1ce2d2..8ee16596795050fb5ff3de9fa2c178aabd067968 100644 (file)
 #include "md5.h"
 #include "keychain.h"
 #include "privs.h"
+#include "lib_errors.h"
 
 #include "ripd/ripd.h"
 #include "ripd/rip_debug.h"
+#include "ripd/rip_errors.h"
 
 DEFINE_QOBJ_TYPE(rip)
 
@@ -1056,9 +1058,9 @@ static void rip_auth_md5_set(struct stream *s, struct rip_interface *ri,
 
        /* Check packet length. */
        if (len < (RIP_HEADER_SIZE + RIP_RTE_SIZE)) {
-               zlog_err(
-                       "rip_auth_md5_set(): packet length %ld is less than minimum length.",
-                       len);
+               flog_err(RIP_ERR_PACKET,
+                         "rip_auth_md5_set(): packet length %ld is less than minimum length.",
+                         len);
                return;
        }
 
@@ -1339,7 +1341,8 @@ static int rip_create_socket(void)
        /* Make datagram socket. */
        sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
        if (sock < 0) {
-               zlog_err("Cannot create UDP socket: %s", safe_strerror(errno));
+               flog_err_sys(LIB_ERR_SOCKET, "Cannot create UDP socket: %s",
+                            safe_strerror(errno));
                exit(1);
        }
 
@@ -1354,26 +1357,23 @@ static int rip_create_socket(void)
        setsockopt_ipv4_tos(sock, IPTOS_PREC_INTERNETCONTROL);
 #endif
 
-       if (ripd_privs.change(ZPRIVS_RAISE))
-               zlog_err("rip_create_socket: could not raise privs");
-       setsockopt_so_recvbuf(sock, RIP_UDP_RCV_BUF);
-       if ((ret = bind(sock, (struct sockaddr *)&addr, sizeof(addr))) < 0)
+       frr_elevate_privs(&ripd_privs) {
+               setsockopt_so_recvbuf(sock, RIP_UDP_RCV_BUF);
+               if ((ret = bind(sock, (struct sockaddr *)&addr, sizeof(addr))) < 0)
 
-       {
-               int save_errno = errno;
-               if (ripd_privs.change(ZPRIVS_LOWER))
-                       zlog_err("rip_create_socket: could not lower privs");
+               {
+                       int save_errno = errno;
 
-               zlog_err("%s: Can't bind socket %d to %s port %d: %s", __func__,
-                        sock, inet_ntoa(addr.sin_addr),
-                        (int)ntohs(addr.sin_port), safe_strerror(save_errno));
+                       zlog_err("%s: Can't bind socket %d to %s port %d: %s",
+                                __func__,
+                                sock, inet_ntoa(addr.sin_addr),
+                                (int)ntohs(addr.sin_port), safe_strerror(save_errno));
 
-               close(sock);
-               return ret;
-       }
+                       close(sock);
+                       return ret;
+               }
 
-       if (ripd_privs.change(ZPRIVS_LOWER))
-               zlog_err("rip_create_socket: could not lower privs");
+       }
 
        return sock;
 }
@@ -2812,6 +2812,7 @@ DEFUN_NOSH (router_rip,
                        return CMD_WARNING_CONFIG_FAILED;
                }
        }
+
        VTY_PUSH_CONTEXT(RIP_NODE, rip);
 
        return CMD_SUCCESS;