[pim] Log physical interface up/down
[pim] Replace strerror with safe_strerror
[pim] Fix PIM socket removal from non-PIM interfaces
[pim] show ip igmp querier: left-align Querier string
[pim] Version up to 0.157
[pim] Recipe to re-sync with Quagga repository
[pim] Build vtysh in development script
diff --git a/pimd/pim_pim.c b/pimd/pim_pim.c
index bbf6776..dd78b90 100644
--- a/pimd/pim_pim.c
+++ b/pimd/pim_pim.c
@@ -74,7 +74,7 @@
   if (close(pim_ifp->pim_sock_fd)) {
     zlog_warn("Failure closing PIM socket fd=%d on interface %s: errno=%d: %s",
 	      pim_ifp->pim_sock_fd, ifp->name,
-	      errno, strerror(errno));
+	      errno, safe_strerror(errno));
   }
   
   pim_ifp->pim_sock_fd = -1;
@@ -91,6 +91,12 @@
   zlog_info("PIM INTERFACE DOWN: on interface %s: %s",
 	    ifp->name, delete_message);
 
+  if (!ifp->info) {
+    zlog_err("%s: %s: but PIM not enabled on interface %s (!)",
+	     __PRETTY_FUNCTION__, delete_message, ifp->name);
+    return;
+  }
+
   /*
     RFC 4601: 4.3.1.  Sending Hello Messages
     
@@ -266,7 +272,7 @@
 			      &ifindex);
   if (len < 0) {
     zlog_warn("Failure receiving IP PIM packet on fd=%d: errno=%d: %s",
-	      fd, errno, strerror(errno));
+	      fd, errno, safe_strerror(errno));
     goto done;
   }
 
@@ -459,7 +465,7 @@
       zlog_warn("%s: sendto() failure to %s on %s: fd=%d msg_size=%d: errno=%d: %s",
 		__PRETTY_FUNCTION__,
 		dst_str, ifname, fd, pim_msg_size,
-		e, strerror(e));
+		e, safe_strerror(e));
     }
     else {
       zlog_warn("%s: sendto() partial to %s on %s: fd=%d msg_size=%d: sent=%d",