diff options
| -rw-r--r-- | pimd/pim_ifchannel.c | 20 | ||||
| -rw-r--r-- | pimd/pim_igmp.c | 16 | ||||
| -rw-r--r-- | pimd/pim_igmpv3.c | 4 | ||||
| -rw-r--r-- | pimd/pim_instance.c | 13 | ||||
| -rw-r--r-- | pimd/pim_mroute.c | 17 | ||||
| -rw-r--r-- | pimd/pim_msdp.c | 4 | ||||
| -rw-r--r-- | pimd/pim_msdp_packet.c | 4 | ||||
| -rw-r--r-- | pimd/pim_msdp_socket.c | 69 | ||||
| -rw-r--r-- | pimd/pim_neighbor.c | 4 | ||||
| -rw-r--r-- | pimd/pim_rp.c | 8 | ||||
| -rw-r--r-- | pimd/pim_sock.c | 38 | ||||
| -rw-r--r-- | pimd/pim_ssmpingd.c | 9 | ||||
| -rw-r--r-- | pimd/pim_time.c | 21 | ||||
| -rw-r--r-- | pimd/pim_tlv.c | 6 | ||||
| -rw-r--r-- | pimd/pim_zlookup.c | 28 | ||||
| -rw-r--r-- | pimd/pimd.c | 4 | 
16 files changed, 138 insertions, 127 deletions
diff --git a/pimd/pim_ifchannel.c b/pimd/pim_ifchannel.c index eb3307589e..92a78c4bb4 100644 --- a/pimd/pim_ifchannel.c +++ b/pimd/pim_ifchannel.c @@ -549,26 +549,6 @@ struct pim_ifchannel *pim_ifchannel_add(struct interface *ifp,  	up = pim_upstream_add(pim_ifp->pim, sg, NULL, up_flags,  			      __PRETTY_FUNCTION__, ch); -	if (!up) { -		zlog_err( -			"%s: could not attach upstream (S,G)=%s on interface %s", -			__PRETTY_FUNCTION__, pim_str_sg_dump(sg), ifp->name); - -		if (ch->parent) -			listnode_delete(ch->parent->sources, ch); - -		pim_ifchannel_remove_children(ch); -		if (ch->sources) -			list_delete_and_null(&ch->sources); - -		THREAD_OFF(ch->t_ifjoin_expiry_timer); -		THREAD_OFF(ch->t_ifjoin_prune_pending_timer); -		THREAD_OFF(ch->t_ifassert_timer); - -		RB_REMOVE(pim_ifchannel_rb, &pim_ifp->ifchannel_rb, ch); -		XFREE(MTYPE_PIM_IFCHANNEL, ch); -		return NULL; -	}  	ch->upstream = up;  	listnode_add_sort(up->ifchannels, ch); diff --git a/pimd/pim_igmp.c b/pimd/pim_igmp.c index b46f1b5e9d..96ec35be7b 100644 --- a/pimd/pim_igmp.c +++ b/pimd/pim_igmp.c @@ -24,6 +24,7 @@  #include "if.h"  #include "hash.h"  #include "jhash.h" +#include "lib_errors.h"  #include "pimd.h"  #include "pim_igmp.h" @@ -96,9 +97,9 @@ static int igmp_sock_open(struct in_addr ifaddr, struct interface *ifp,  	}  	if (!join) { -		zlog_err( -			"IGMP socket fd=%d could not join any group on interface address %s", -			fd, inet_ntoa(ifaddr)); +		zlog_ferr(LIB_ERR_SOCKET, +			  "IGMP socket fd=%d could not join any group on interface address %s", +			  fd, inet_ntoa(ifaddr));  		close(fd);  		fd = -1;  	} @@ -697,7 +698,8 @@ static void sock_close(struct igmp_sock *igmp)  	THREAD_OFF(igmp->t_igmp_read);  	if (close(igmp->fd)) { -		zlog_err( +		zlog_ferr( +			LIB_ERR_SOCKET,  			"Failure closing IGMP socket %s fd=%d on interface %s: errno=%d: %s",  			inet_ntoa(igmp->ifaddr), igmp->fd,  			igmp->interface->name, errno, safe_strerror(errno)); @@ -960,12 +962,6 @@ struct igmp_sock *pim_igmp_sock_add(struct list *igmp_sock_list,  	}  	igmp = igmp_sock_new(fd, ifaddr, ifp, mtrace_only); -	if (!igmp) { -		zlog_err("%s %s: igmp_sock_new() failure", __FILE__, -			 __PRETTY_FUNCTION__); -		close(fd); -		return 0; -	}  	igmp_read_on(igmp); diff --git a/pimd/pim_igmpv3.c b/pimd/pim_igmpv3.c index 132fe4d564..38f26f7ae8 100644 --- a/pimd/pim_igmpv3.c +++ b/pimd/pim_igmpv3.c @@ -21,6 +21,7 @@  #include "log.h"  #include "memory.h"  #include "if.h" +#include "lib_errors.h"  #include "pimd.h"  #include "pim_iface.h" @@ -1583,7 +1584,8 @@ void igmp_v3_send_query(struct igmp_group *group, int fd, const char *ifname,  	msg_size = IGMP_V3_SOURCES_OFFSET + (num_sources << 2);  	if (msg_size > query_buf_size) { -		zlog_err( +		zlog_ferr( +			LIB_ERR_DEVELOPMENT,  			"%s %s: unable to send: msg_size=%zd larger than query_buf_size=%d",  			__FILE__, __PRETTY_FUNCTION__, msg_size,  			query_buf_size); diff --git a/pimd/pim_instance.c b/pimd/pim_instance.c index e664bf3062..8dc48cc004 100644 --- a/pimd/pim_instance.c +++ b/pimd/pim_instance.c @@ -22,6 +22,7 @@  #include "hash.h"  #include "vrf.h" +#include "lib_errors.h"  #include "pimd.h"  #include "pim_ssm.h" @@ -94,10 +95,6 @@ static struct pim_instance *pim_instance_init(struct vrf *vrf)  		zlog_debug("%s: NHT rpf hash init ", __PRETTY_FUNCTION__);  	pim->ssm_info = pim_ssm_init(); -	if (!pim->ssm_info) { -		pim_instance_terminate(pim); -		return NULL; -	}  	pim->static_routes = list_new();  	pim->static_routes->del = (void (*)(void *))pim_static_route_free; @@ -132,14 +129,6 @@ static int pim_vrf_new(struct vrf *vrf)  	struct pim_instance *pim = pim_instance_init(vrf);  	zlog_debug("VRF Created: %s(%u)", vrf->name, vrf->vrf_id); -	if (pim == NULL) { -		zlog_err("%s %s: pim class init failure ", __FILE__, -			 __PRETTY_FUNCTION__); -		/* -		 * We will crash and burn otherwise -		 */ -		exit(1); -	}  	vrf->info = (void *)pim; diff --git a/pimd/pim_mroute.c b/pimd/pim_mroute.c index dd30678405..9b0599caf0 100644 --- a/pimd/pim_mroute.c +++ b/pimd/pim_mroute.c @@ -25,6 +25,7 @@  #include "vty.h"  #include "plist.h"  #include "sockopt.h" +#include "lib_errors.h"  #include "pimd.h"  #include "pim_rpf.h" @@ -56,7 +57,8 @@ static int pim_mroute_set(struct pim_instance *pim, int enable)  	 */  	if (pim->vrf_id != VRF_DEFAULT) {  		if (pimd_privs.change(ZPRIVS_RAISE)) -			zlog_err( +			zlog_ferr( +				LIB_ERR_PRIVILEGES,  				"pim_mroute_socket_enable: could not raise privs, %s",  				safe_strerror(errno)); @@ -73,7 +75,8 @@ static int pim_mroute_set(struct pim_instance *pim, int enable)  		}  		if (pimd_privs.change(ZPRIVS_LOWER)) -			zlog_err( +			zlog_ferr( +				LIB_ERR_PRIVILEGES,  				"pim_mroute_socket_enable: could not lower privs, %s",  				safe_strerror(errno));  	} @@ -709,8 +712,9 @@ int pim_mroute_socket_enable(struct pim_instance *pim)  	int fd;  	if (pimd_privs.change(ZPRIVS_RAISE)) -		zlog_err("pim_mroute_socket_enable: could not raise privs, %s", -			 safe_strerror(errno)); +		zlog_ferr(LIB_ERR_PRIVILEGES, +			  "pim_mroute_socket_enable: could not raise privs, %s", +			  safe_strerror(errno));  	fd = socket(AF_INET, SOCK_RAW, IPPROTO_IGMP); @@ -732,8 +736,9 @@ int pim_mroute_socket_enable(struct pim_instance *pim)  #endif  	if (pimd_privs.change(ZPRIVS_LOWER)) -		zlog_err("pim_mroute_socket_enable: could not lower privs, %s", -			 safe_strerror(errno)); +		zlog_ferr(LIB_ERR_PRIVILEGES, +			  "pim_mroute_socket_enable: could not lower privs, %s", +			  safe_strerror(errno));  	pim->mroute_socket = fd;  	if (pim_mroute_set(pim, 1)) { diff --git a/pimd/pim_msdp.c b/pimd/pim_msdp.c index 4910cb8b38..c15b87f92e 100644 --- a/pimd/pim_msdp.c +++ b/pimd/pim_msdp.c @@ -28,6 +28,7 @@  #include <lib/thread.h>  #include <lib/vty.h>  #include <lib/plist.h> +#include <lib/lib_errors.h>  #include "pimd.h"  #include "pim_cmd.h" @@ -517,7 +518,8 @@ static void pim_msdp_sa_local_del_on_up_del(struct pim_instance *pim,  			 * the flow. Accounting for such cases requires lot of  			 * changes; perhaps  			 * address this in the next release? - XXX  */ -			zlog_err( +			zlog_ferr( +				  LIB_ERR_DEVELOPMENT,  				"MSDP sa %s SPT teardown is causing the local entry to be removed",  				sa->sg_str);  			return; diff --git a/pimd/pim_msdp_packet.c b/pimd/pim_msdp_packet.c index 978d979245..7aa9357b85 100644 --- a/pimd/pim_msdp_packet.c +++ b/pimd/pim_msdp_packet.c @@ -23,6 +23,7 @@  #include <lib/stream.h>  #include <lib/thread.h>  #include <lib/vty.h> +#include <lib/lib_errors.h>  #include "pimd.h"  #include "pim_str.h" @@ -145,7 +146,8 @@ static void pim_msdp_connect_check(struct pim_msdp_peer *mp)  	/* If getsockopt is fail, this is fatal error. */  	if (ret < 0) { -		zlog_err("can't get sockopt for nonblocking connect"); +		zlog_ferr(LIB_ERR_SOCKET, +			  "can't get sockopt for nonblocking connect");  		pim_msdp_peer_reset_tcp_conn(mp, "connect-failed");  		return;  	} diff --git a/pimd/pim_msdp_socket.c b/pimd/pim_msdp_socket.c index f245a04353..5b1afb774b 100644 --- a/pimd/pim_msdp_socket.c +++ b/pimd/pim_msdp_socket.c @@ -26,6 +26,7 @@  #include <lib/vty.h>  #include <lib/if.h>  #include <lib/vrf.h> +#include <lib/lib_errors.h>  #include "pimd.h"  #include "pim_sock.h" @@ -41,16 +42,17 @@ static void pim_msdp_update_sock_send_buffer_size(int fd)  	socklen_t optlen = sizeof(optval);  	if (getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &optval, &optlen) < 0) { -		zlog_err("getsockopt of SO_SNDBUF failed %s\n", -			 safe_strerror(errno)); +		zlog_ferr(LIB_ERR_SOCKET, "getsockopt of SO_SNDBUF failed %s\n", +			  safe_strerror(errno));  		return;  	}  	if (optval < size) {  		if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &size, sizeof(size))  		    < 0) { -			zlog_err("Couldn't increase send buffer: %s\n", -				 safe_strerror(errno)); +			zlog_ferr(LIB_ERR_SOCKET, +				  "Couldn't increase send buffer: %s\n", +				  safe_strerror(errno));  		}  	}  } @@ -70,7 +72,8 @@ static int pim_msdp_sock_accept(struct thread *thread)  	/* re-register accept thread */  	accept_sock = THREAD_FD(thread);  	if (accept_sock < 0) { -		zlog_err("accept_sock is negative value %d", accept_sock); +		zlog_ferr(LIB_ERR_DEVELOPMENT, +			  "accept_sock is negative value %d", accept_sock);  		return -1;  	}  	pim->msdp.listener.thread = NULL; @@ -80,8 +83,8 @@ static int pim_msdp_sock_accept(struct thread *thread)  	/* accept client connection. */  	msdp_sock = sockunion_accept(accept_sock, &su);  	if (msdp_sock < 0) { -		zlog_err("pim_msdp_sock_accept failed (%s)", -			 safe_strerror(errno)); +		zlog_ferr(LIB_ERR_SOCKET, "pim_msdp_sock_accept failed (%s)", +			  safe_strerror(errno));  		return -1;  	} @@ -106,7 +109,7 @@ static int pim_msdp_sock_accept(struct thread *thread)  	 * with this one */  	if (mp->fd >= 0) {  		if (PIM_DEBUG_MSDP_EVENTS) { -			zlog_err( +			zlog_notice(  				"msdp peer new connection from %s stop old connection",  				sockunion2str(&su, buf, SU_ADDRSTRLEN));  		} @@ -135,7 +138,7 @@ int pim_msdp_sock_listen(struct pim_instance *pim)  	sock = socket(AF_INET, SOCK_STREAM, 0);  	if (sock < 0) { -		zlog_err("socket: %s", safe_strerror(errno)); +		zlog_ferr(LIB_ERR_SOCKET, "socket: %s", safe_strerror(errno));  		return sock;  	} @@ -154,42 +157,47 @@ int pim_msdp_sock_listen(struct pim_instance *pim)  		struct interface *ifp =  			if_lookup_by_name(pim->vrf->name, pim->vrf_id);  		if (!ifp) { -			zlog_err("%s: Unable to lookup vrf interface: %s", -				 __PRETTY_FUNCTION__, pim->vrf->name); +			zlog_ferr(LIB_ERR_INTERFACE, +				  "%s: Unable to lookup vrf interface: %s", +				  __PRETTY_FUNCTION__, pim->vrf->name);  			close(sock);  			return -1;  		}  		if (pim_socket_bind(sock, ifp)) { -			zlog_err("%s: Unable to bind to socket: %s", -				 __PRETTY_FUNCTION__, safe_strerror(errno)); +			zlog_ferr(LIB_ERR_SOCKET, +				  "%s: Unable to bind to socket: %s", +				  __PRETTY_FUNCTION__, safe_strerror(errno));  			close(sock);  			return -1;  		}  	}  	if (pimd_privs.change(ZPRIVS_RAISE)) { -		zlog_err("pim_msdp_socket: could not raise privs, %s", -			 safe_strerror(errno)); +		zlog_ferr(LIB_ERR_PRIVILEGES, +			  "pim_msdp_socket: could not raise privs, %s", +			  safe_strerror(errno));  	}  	/* bind to well known TCP port */  	rc = bind(sock, (struct sockaddr *)&sin, socklen);  	if (pimd_privs.change(ZPRIVS_LOWER)) { -		zlog_err("pim_msdp_socket: could not lower privs, %s", -			 safe_strerror(errno)); +		zlog_ferr(LIB_ERR_PRIVILEGES, +			  "pim_msdp_socket: could not lower privs, %s", +			  safe_strerror(errno));  	}  	if (rc < 0) { -		zlog_err("pim_msdp_socket bind to port %d: %s", -			 ntohs(sin.sin_port), safe_strerror(errno)); +		zlog_ferr(LIB_ERR_SOCKET, "pim_msdp_socket bind to port %d: %s", +			  ntohs(sin.sin_port), safe_strerror(errno));  		close(sock);  		return rc;  	}  	rc = listen(sock, 3 /* backlog */);  	if (rc < 0) { -		zlog_err("pim_msdp_socket listen: %s", safe_strerror(errno)); +		zlog_ferr(LIB_ERR_SOCKET, "pim_msdp_socket listen: %s", +			  safe_strerror(errno));  		close(sock);  		return rc;  	} @@ -219,7 +227,7 @@ int pim_msdp_sock_connect(struct pim_msdp_peer *mp)  	 * with this one */  	if (mp->fd >= 0) {  		if (PIM_DEBUG_MSDP_EVENTS) { -			zlog_err( +			zlog_notice(  				"msdp duplicate connect to %s nuke old connection",  				mp->key_str);  		} @@ -229,8 +237,8 @@ int pim_msdp_sock_connect(struct pim_msdp_peer *mp)  	/* Make socket for the peer. */  	mp->fd = sockunion_socket(&mp->su_peer);  	if (mp->fd < 0) { -		zlog_err("pim_msdp_socket socket failure: %s", -			 safe_strerror(errno)); +		zlog_ferr(LIB_ERR_SOCKET, "pim_msdp_socket socket failure: %s", +			  safe_strerror(errno));  		return -1;  	} @@ -238,13 +246,15 @@ int pim_msdp_sock_connect(struct pim_msdp_peer *mp)  		struct interface *ifp =  			if_lookup_by_name(mp->pim->vrf->name, mp->pim->vrf_id);  		if (!ifp) { -			zlog_err("%s: Unable to lookup vrf interface: %s", -				 __PRETTY_FUNCTION__, mp->pim->vrf->name); +			zlog_ferr(LIB_ERR_INTERFACE, +				  "%s: Unable to lookup vrf interface: %s", +				  __PRETTY_FUNCTION__, mp->pim->vrf->name);  			return -1;  		}  		if (pim_socket_bind(mp->fd, ifp)) { -			zlog_err("%s: Unable to bind to socket: %s", -				 __PRETTY_FUNCTION__, safe_strerror(errno)); +			zlog_ferr(LIB_ERR_SOCKET, +				  "%s: Unable to bind to socket: %s", +				  __PRETTY_FUNCTION__, safe_strerror(errno));  			close(mp->fd);  			mp->fd = -1;  			return -1; @@ -261,8 +271,9 @@ int pim_msdp_sock_connect(struct pim_msdp_peer *mp)  	/* source bind */  	rc = sockunion_bind(mp->fd, &mp->su_local, 0, &mp->su_local);  	if (rc < 0) { -		zlog_err("pim_msdp_socket connect bind failure: %s", -			 safe_strerror(errno)); +		zlog_ferr(LIB_ERR_SOCKET, +			  "pim_msdp_socket connect bind failure: %s", +			  safe_strerror(errno));  		close(mp->fd);  		mp->fd = -1;  		return rc; diff --git a/pimd/pim_neighbor.c b/pimd/pim_neighbor.c index e73422331f..0aaf6127d0 100644 --- a/pimd/pim_neighbor.c +++ b/pimd/pim_neighbor.c @@ -25,6 +25,7 @@  #include "if.h"  #include "vty.h"  #include "plist.h" +#include "lib_errors.h"  #include "pimd.h"  #include "pim_neighbor.h" @@ -799,7 +800,8 @@ void pim_neighbor_update(struct pim_neighbor *neigh,  	if (neigh->prefix_list == addr_list) {  		if (addr_list) { -			zlog_err( +			zlog_ferr( +				LIB_ERR_DEVELOPMENT,  				"%s: internal error: trying to replace same prefix list=%p",  				__PRETTY_FUNCTION__, (void *)addr_list);  		} diff --git a/pimd/pim_rp.c b/pimd/pim_rp.c index 3b3e5eb693..fd1b96505b 100644 --- a/pimd/pim_rp.c +++ b/pimd/pim_rp.c @@ -31,6 +31,7 @@  #include "plist.h"  #include "nexthop.h"  #include "table.h" +#include "lib_errors.h"  #include "pimd.h"  #include "pim_vty.h" @@ -231,7 +232,8 @@ static struct rp_info *pim_rp_find_match_group(struct pim_instance *pim,  	rn = route_node_match(pim->rp_table, group);  	if (!rn) { -		zlog_err( +		zlog_ferr( +			LIB_ERR_DEVELOPMENT,  			"%s: BUG We should have found default group information\n",  			__PRETTY_FUNCTION__);  		return best; @@ -619,7 +621,9 @@ int pim_rp_del(struct pim_instance *pim, const char *rp,  		rn = route_node_get(pim->rp_table, &rp_info->group);  		if (rn) {  			if (rn->info != rp_info) -				zlog_err("WTF matey"); +				zlog_ferr( +					LIB_ERR_DEVELOPMENT, +					"Expected rn->info to be equal to rp_info");  			if (PIM_DEBUG_TRACE) {  				char buf[PREFIX_STRLEN]; diff --git a/pimd/pim_sock.c b/pimd/pim_sock.c index fb0d6b5064..44e051804a 100644 --- a/pimd/pim_sock.c +++ b/pimd/pim_sock.c @@ -33,6 +33,7 @@  #include "if.h"  #include "vrf.h"  #include "sockopt.h" +#include "lib_errors.h"  #include "pimd.h"  #include "pim_mroute.h" @@ -46,14 +47,16 @@ int pim_socket_raw(int protocol)  	int fd;  	if (pimd_privs.change(ZPRIVS_RAISE)) -		zlog_err("pim_sockek_raw: could not raise privs, %s", -			 safe_strerror(errno)); +		zlog_ferr(LIB_ERR_PRIVILEGES, +			  "pim_sockek_raw: could not raise privs, %s", +			  safe_strerror(errno));  	fd = socket(AF_INET, SOCK_RAW, protocol);  	if (pimd_privs.change(ZPRIVS_LOWER)) -		zlog_err("pim_socket_raw: could not lower privs, %s", -			 safe_strerror(errno)); +		zlog_ferr(LIB_ERR_PRIVILEGES, +			  "pim_socket_raw: could not lower privs, %s", +			  safe_strerror(errno));  	if (fd < 0) {  		zlog_warn("Could not create raw socket: errno=%d: %s", errno, @@ -69,16 +72,17 @@ void pim_socket_ip_hdr(int fd)  	const int on = 1;  	if (pimd_privs.change(ZPRIVS_RAISE)) -		zlog_err("%s: could not raise privs, %s", __PRETTY_FUNCTION__, -			 safe_strerror(errno)); +		zlog_ferr(LIB_ERR_PRIVILEGES, "%s: could not raise privs, %s", +			  __PRETTY_FUNCTION__, safe_strerror(errno));  	if (setsockopt(fd, IPPROTO_IP, IP_HDRINCL, &on, sizeof(on))) -		zlog_err("%s: Could not turn on IP_HDRINCL option: %s", -			 __PRETTY_FUNCTION__, safe_strerror(errno)); +		zlog_ferr(LIB_ERR_SOCKET, +			  "%s: Could not turn on IP_HDRINCL option: %s", +			  __PRETTY_FUNCTION__, safe_strerror(errno));  	if (pimd_privs.change(ZPRIVS_LOWER)) -		zlog_err("%s: could not lower privs, %s", __PRETTY_FUNCTION__, -			 safe_strerror(errno)); +		zlog_ferr(LIB_ERR_PRIVILEGES, "%s: could not lower privs, %s", +			  __PRETTY_FUNCTION__, safe_strerror(errno));  }  /* @@ -91,15 +95,15 @@ int pim_socket_bind(int fd, struct interface *ifp)  #ifdef SO_BINDTODEVICE  	if (pimd_privs.change(ZPRIVS_RAISE)) -		zlog_err("%s: could not raise privs, %s", __PRETTY_FUNCTION__, -			 safe_strerror(errno)); +		zlog_ferr(LIB_ERR_PRIVILEGES, "%s: could not raise privs, %s", +			  __PRETTY_FUNCTION__, safe_strerror(errno));  	ret = setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, ifp->name,  			 strlen(ifp->name));  	if (pimd_privs.change(ZPRIVS_LOWER)) -		zlog_err("%s: could not lower privs, %s", __PRETTY_FUNCTION__, -			 safe_strerror(errno)); +		zlog_ferr(LIB_ERR_PRIVILEGES, "%s: could not lower privs, %s", +			  __PRETTY_FUNCTION__, safe_strerror(errno));  #endif  	return ret; @@ -161,7 +165,8 @@ int pim_socket_mcast(int protocol, struct in_addr ifaddr, struct interface *ifp,  				fd, errno, safe_strerror(errno));  		}  #else -		zlog_err( +		zlog_ferr( +			LIB_ERR_DEVELOPMENT,  			"%s %s: Missing IP_PKTINFO and IP_RECVDSTADDR: unable to get dst addr from recvmsg()",  			__FILE__, __PRETTY_FUNCTION__);  		close(fd); @@ -298,7 +303,8 @@ int pim_socket_join(int fd, struct in_addr group, struct in_addr ifaddr,  			       sizeof(ifaddr_str)))  			sprintf(ifaddr_str, "<ifaddr?>"); -		zlog_err( +		zlog_ferr( +			LIB_ERR_SOCKET,  			"Failure socket joining fd=%d group %s on interface address %s: errno=%d: %s",  			fd, group_str, ifaddr_str, errno, safe_strerror(errno));  		return ret; diff --git a/pimd/pim_ssmpingd.c b/pimd/pim_ssmpingd.c index bdf303d5c5..3cb49079b4 100644 --- a/pimd/pim_ssmpingd.c +++ b/pimd/pim_ssmpingd.c @@ -24,6 +24,7 @@  #include "memory.h"  #include "sockopt.h"  #include "vrf.h" +#include "lib_errors.h"  #include "pimd.h"  #include "pim_ssmpingd.h" @@ -82,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)); +		zlog_ferr(LIB_ERR_SOCKET, +			  "%s: could not create socket: errno=%d: %s", +			  __PRETTY_FUNCTION__, errno, safe_strerror(errno));  		return -1;  	} @@ -124,7 +126,8 @@ static int ssmpingd_socket(struct in_addr addr, int port, int mttl)  				safe_strerror(errno));  		}  #else -		zlog_err( +		zlog_ferr( +			LIB_ERR_DEVELOPMENT,  			"%s %s: missing IP_PKTINFO and IP_RECVDSTADDR: unable to get dst addr from recvmsg()",  			__FILE__, __PRETTY_FUNCTION__);  		close(fd); diff --git a/pimd/pim_time.c b/pimd/pim_time.c index 6f011da43e..ed2942d594 100644 --- a/pimd/pim_time.c +++ b/pimd/pim_time.c @@ -25,6 +25,7 @@  #include "log.h"  #include "thread.h" +#include "lib_errors.h"  #include "pim_time.h" @@ -34,8 +35,9 @@ static int gettime_monotonic(struct timeval *tv)  	result = gettimeofday(tv, 0);  	if (result) { -		zlog_err("%s: gettimeofday() failure: errno=%d: %s", -			 __PRETTY_FUNCTION__, errno, safe_strerror(errno)); +		zlog_ferr(LIB_ERR_SYSTEM_CALL, +			  "%s: gettimeofday() failure: errno=%d: %s", +			  __PRETTY_FUNCTION__, errno, safe_strerror(errno));  	}  	return result; @@ -50,8 +52,9 @@ int64_t pim_time_monotonic_sec()  	struct timeval now_tv;  	if (gettime_monotonic(&now_tv)) { -		zlog_err("%s: gettime_monotonic() failure: errno=%d: %s", -			 __PRETTY_FUNCTION__, errno, safe_strerror(errno)); +		zlog_ferr(LIB_ERR_SYSTEM_CALL, +			  "%s: gettime_monotonic() failure: errno=%d: %s", +			  __PRETTY_FUNCTION__, errno, safe_strerror(errno));  		return -1;  	} @@ -68,8 +71,9 @@ int64_t pim_time_monotonic_dsec()  	int64_t now_dsec;  	if (gettime_monotonic(&now_tv)) { -		zlog_err("%s: gettime_monotonic() failure: errno=%d: %s", -			 __PRETTY_FUNCTION__, errno, safe_strerror(errno)); +		zlog_ferr(LIB_ERR_SYSTEM_CALL, +			  "%s: gettime_monotonic() failure: errno=%d: %s", +			  __PRETTY_FUNCTION__, errno, safe_strerror(errno));  		return -1;  	} @@ -85,8 +89,9 @@ int64_t pim_time_monotonic_usec(void)  	int64_t now_dsec;  	if (gettime_monotonic(&now_tv)) { -		zlog_err("%s: gettime_monotonic() failure: errno=%d: %s", -			 __PRETTY_FUNCTION__, errno, safe_strerror(errno)); +		zlog_ferr(LIB_ERR_SYSTEM_CALL, +			  "%s: gettime_monotonic() failure: errno=%d: %s", +			  __PRETTY_FUNCTION__, errno, safe_strerror(errno));  		return -1;  	} diff --git a/pimd/pim_tlv.c b/pimd/pim_tlv.c index 80bda336df..70700dd508 100644 --- a/pimd/pim_tlv.c +++ b/pimd/pim_tlv.c @@ -767,12 +767,6 @@ int pim_tlv_parse_addr_list(const char *ifname, struct in_addr src_addr,  		{  			struct prefix *p;  			p = prefix_new(); -			if (!p) { -				zlog_err("%s %s: failure: prefix_new()", -					 __FILE__, __PRETTY_FUNCTION__); -				FREE_ADDR_LIST(*hello_option_addr_list); -				return -3; -			}  			prefix_copy(p, &tmp);  			listnode_add(*hello_option_addr_list, p);  		} diff --git a/pimd/pim_zlookup.c b/pimd/pim_zlookup.c index fb616e1b0d..12958b0390 100644 --- a/pimd/pim_zlookup.c +++ b/pimd/pim_zlookup.c @@ -28,6 +28,7 @@  #include "thread.h"  #include "prefix.h"  #include "vty.h" +#include "lib_errors.h"  #include "pimd.h"  #include "pim_iface.h" @@ -122,7 +123,8 @@ void zclient_lookup_new(void)  {  	zlookup = zclient_new_notify(master, &zclient_options_default);  	if (!zlookup) { -		zlog_err("%s: zclient_new() failure", __PRETTY_FUNCTION__); +		zlog_ferr(LIB_ERR_ZAPI_SOCKET, "%s: zclient_new() failure", +			  __PRETTY_FUNCTION__);  		return;  	} @@ -168,8 +170,9 @@ static int zclient_read_nexthop(struct pim_instance *pim,  		err = zclient_read_header(s, zlookup->sock, &length, &marker,  					  &version, &vrf_id, &command);  		if (err < 0) { -			zlog_err("%s: zclient_read_header() failed", -				 __PRETTY_FUNCTION__); +			zlog_ferr(LIB_ERR_ZAPI_MISSMATCH, +				  "%s: zclient_read_header() failed", +				  __PRETTY_FUNCTION__);  			zclient_lookup_failed(zlookup);  			return -1;  		} @@ -333,15 +336,17 @@ static int zclient_lookup_nexthop_once(struct pim_instance *pim,  	ret = writen(zlookup->sock, s->data, stream_get_endp(s));  	if (ret < 0) { -		zlog_err( +		zlog_ferr( +			LIB_ERR_SOCKET,  			"%s: writen() failure: %d writing to zclient lookup socket",  			__PRETTY_FUNCTION__, errno);  		zclient_lookup_failed(zlookup);  		return -2;  	}  	if (ret == 0) { -		zlog_err("%s: connection closed on zclient lookup socket", -			 __PRETTY_FUNCTION__); +		zlog_ferr(LIB_ERR_SOCKET, +			  "%s: connection closed on zclient lookup socket", +			  __PRETTY_FUNCTION__);  		zclient_lookup_failed(zlookup);  		return -3;  	} @@ -509,7 +514,8 @@ int pim_zlookup_sg_statistics(struct channel_oil *c_oil)  	count = stream_get_endp(s);  	ret = writen(zlookup->sock, s->data, count);  	if (ret <= 0) { -		zlog_err( +		zlog_ferr( +			LIB_ERR_SOCKET,  			"%s: writen() failure: %d writing to zclient lookup socket",  			__PRETTY_FUNCTION__, errno);  		return -1; @@ -528,8 +534,9 @@ int pim_zlookup_sg_statistics(struct channel_oil *c_oil)  		err = zclient_read_header(s, zlookup->sock, &length, &marker,  					  &version, &vrf_id, &command);  		if (err < 0) { -			zlog_err("%s: zclient_read_header() failed", -				 __PRETTY_FUNCTION__); +			zlog_ferr(LIB_ERR_ZAPI_MISSMATCH, +				  "%s: zclient_read_header() failed", +				  __PRETTY_FUNCTION__);  			zclient_lookup_failed(zlookup);  			return -1;  		} @@ -544,7 +551,8 @@ int pim_zlookup_sg_statistics(struct channel_oil *c_oil)  			more.src = c_oil->oil.mfcc_origin;  			more.grp = c_oil->oil.mfcc_mcastgrp; -			zlog_err( +			zlog_ferr( +				LIB_ERR_ZAPI_MISSMATCH,  				"%s: Received wrong %s(%s) information requested",  				__PRETTY_FUNCTION__, pim_str_sg_dump(&more),  				c_oil->pim->vrf->name); diff --git a/pimd/pimd.c b/pimd/pimd.c index cb7b8b589a..f5ec372858 100644 --- a/pimd/pimd.c +++ b/pimd/pimd.c @@ -28,6 +28,7 @@  #include "hash.h"  #include "jhash.h"  #include "vrf.h" +#include "lib_errors.h"  #include "pimd.h"  #include "pim_cmd.h" @@ -84,7 +85,8 @@ static void pim_free()  void pim_init()  {  	if (!inet_aton(PIM_ALL_PIM_ROUTERS, &qpim_all_pim_routers_addr)) { -		zlog_err( +		zlog_ferr( +			LIB_ERR_SOCKET,  			"%s %s: could not solve %s to group address: errno=%d: %s",  			__FILE__, __PRETTY_FUNCTION__, PIM_ALL_PIM_ROUTERS,  			errno, safe_strerror(errno));  | 
