[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_zebra.c b/pimd/pim_zebra.c
index d03cc54..56e4dba 100644
--- a/pimd/pim_zebra.c
+++ b/pimd/pim_zebra.c
@@ -127,6 +127,8 @@
   if (!ifp)
     return 0;
 
+  zlog_info("INTERFACE UP: %s", ifp->name);
+
   if (PIM_DEBUG_ZEBRA) {
     zlog_debug("%s: %s index %d flags %ld metric %d mtu %d operative %d",
 	       __PRETTY_FUNCTION__,
@@ -157,6 +159,8 @@
   if (!ifp)
     return 0;
 
+  zlog_info("INTERFACE DOWN: %s", ifp->name);
+
   if (PIM_DEBUG_ZEBRA) {
     zlog_debug("%s: %s index %d flags %ld metric %d mtu %d operative %d",
 	       __PRETTY_FUNCTION__,
@@ -175,7 +179,9 @@
       pim_sock_delete() closes the socket, stops read and timer threads,
       and kills all neighbors.
     */
-    pim_sock_delete(ifp, "link down");
+    if (ifp->info) {
+      pim_sock_delete(ifp, "link down");
+    }
   }
 
   return 0;