]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_ssmpingd.c
zebra: Refactor kernel_rtm to be a bit smarter about how it handles options
[mirror_frr.git] / pimd / pim_ssmpingd.c
index f83a585a8d430810a35b7df86e6560c6cd487e98..c3d958428ca5f43979d1af96424eb013e58e9d99 100644 (file)
@@ -24,6 +24,7 @@
 #include "memory.h"
 #include "sockopt.h"
 #include "vrf.h"
+#include "lib_errors.h"
 
 #include "pimd.h"
 #include "pim_ssmpingd.h"
@@ -50,10 +51,8 @@ void pim_ssmpingd_init(struct pim_instance *pim)
 
 void pim_ssmpingd_destroy(struct pim_instance *pim)
 {
-       if (pim->ssmpingd_list) {
-               list_free(pim->ssmpingd_list);
-               pim->ssmpingd_list = 0;
-       }
+       if (pim->ssmpingd_list)
+               list_delete(&pim->ssmpingd_list);
 }
 
 static struct ssmpingd_sock *ssmpingd_find(struct pim_instance *pim,
@@ -84,8 +83,9 @@ static int ssmpingd_socket(struct in_addr addr, int port, int mttl)
 
        fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
        if (fd < 0) {
-               zlog_err("%s: could not create socket: errno=%d: %s",
-                        __PRETTY_FUNCTION__, errno, safe_strerror(errno));
+               flog_err_sys(EC_LIB_SOCKET,
+                            "%s: could not create socket: errno=%d: %s",
+                            __PRETTY_FUNCTION__, errno, safe_strerror(errno));
                return -1;
        }
 
@@ -126,7 +126,8 @@ static int ssmpingd_socket(struct in_addr addr, int port, int mttl)
                                safe_strerror(errno));
                }
 #else
-               zlog_err(
+               flog_err(
+                       EC_LIB_DEVELOPMENT,
                        "%s %s: missing IP_PKTINFO and IP_RECVDSTADDR: unable to get dst addr from recvmsg()",
                        __FILE__, __PRETTY_FUNCTION__);
                close(fd);
@@ -350,12 +351,6 @@ static struct ssmpingd_sock *ssmpingd_new(struct pim_instance *pim,
 
        if (!pim->ssmpingd_list) {
                pim->ssmpingd_list = list_new();
-               if (!pim->ssmpingd_list) {
-                       zlog_err(
-                               "%s %s: failure: qpim_ssmpingd_list=list_new()",
-                               __FILE__, __PRETTY_FUNCTION__);
-                       return 0;
-               }
                pim->ssmpingd_list->del = (void (*)(void *))ssmpingd_free;
        }
 
@@ -371,15 +366,6 @@ static struct ssmpingd_sock *ssmpingd_new(struct pim_instance *pim,
        }
 
        ss = XCALLOC(MTYPE_PIM_SSMPINGD, sizeof(*ss));
-       if (!ss) {
-               char source_str[INET_ADDRSTRLEN];
-               pim_inet4_dump("<src?>", source_addr, source_str,
-                              sizeof(source_str));
-               zlog_err("%s: XCALLOC(%zu) failure for ssmpingd source %s",
-                        __PRETTY_FUNCTION__, sizeof(*ss), source_str);
-               close(sock_fd);
-               return 0;
-       }
 
        ss->pim = pim;
        ss->sock_fd = sock_fd;