2005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>

	* daemon.c: (daemon) Replace perror with zlog_err.
	* vty.c: (vty_serv_un) Replace perror with zlog_err.
	* ripd.c: (rip_create_socket) Replace perror with zlog_err.
	* ioctl.c: (if_ioctl,if_ioctl_ipv6,if_get_flags) Replace perror with
	  zlog_err.
	* ioctl_solaris.c: (if_ioctl,if_ioctl_ipv6) Replace perror with
	  zlog_err.
diff --git a/lib/ChangeLog b/lib/ChangeLog
index 34dad16..dcf3776 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,8 @@
+2005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+	* daemon.c: (daemon) Replace perror with zlog_err.
+	* vty.c: (vty_serv_un) Replace perror with zlog_err.
+
 2005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
 	* buffer.h: Fix comment on buffer_getstr to reflect that it now
diff --git a/lib/daemon.c b/lib/daemon.c
index d838010..e73a74f 100644
--- a/lib/daemon.c
+++ b/lib/daemon.c
@@ -35,7 +35,7 @@
   /* In case of fork is error. */
   if (pid < 0)
     {
-      perror ("fork");
+      zlog_err ("fork failed: %s", safe_strerror(errno));
       return -1;
     }
 
@@ -48,7 +48,7 @@
 
   if (pid == -1)
     {
-      perror ("setsid");
+      zlog_err ("setsid failed: %s", safe_strerror(errno));
       return -1;
     }
 
diff --git a/lib/vty.c b/lib/vty.c
index 4248733..053e9ee 100644
--- a/lib/vty.c
+++ b/lib/vty.c
@@ -1824,7 +1824,7 @@
   sock = socket (AF_UNIX, SOCK_STREAM, 0);
   if (sock < 0)
     {
-      perror ("sock");
+      zlog_err("Cannot create unix stream socket: %s", safe_strerror(errno));
       return;
     }
 
@@ -1841,7 +1841,7 @@
   ret = bind (sock, (struct sockaddr *) &serv, len);
   if (ret < 0)
     {
-      perror ("bind");
+      zlog_err("Cannot bind path %s: %s", path, safe_strerror(errno));
       close (sock);	/* Avoid sd leak. */
       return;
     }
@@ -1849,7 +1849,7 @@
   ret = listen (sock, 5);
   if (ret < 0)
     {
-      perror ("listen");
+      zlog_err("listen(fd %d) failed: %s", sock, safe_strerror(errno));
       close (sock);	/* Avoid sd leak. */
       return;
     }
diff --git a/ripd/ChangeLog b/ripd/ChangeLog
index 5a5d1b4..60be27e 100644
--- a/ripd/ChangeLog
+++ b/ripd/ChangeLog
@@ -1,5 +1,9 @@
 2005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
+	* ripd.c: (rip_create_socket) Replace perror with zlog_err.
+
+2005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
 	* ripd.c: (rip_create_socket) Save errno before calling
 	  ripd_privs.change.
 
diff --git a/ripd/ripd.c b/ripd/ripd.c
index 2a345a6..b5d130e 100644
--- a/ripd/ripd.c
+++ b/ripd/ripd.c
@@ -1985,7 +1985,7 @@
   sock = socket (AF_INET, SOCK_DGRAM, 0);
   if (sock < 0) 
     {
-      perror ("socket");
+      zlog_err("Cannot create UDP socket: %s", safe_strerror(errno));
       exit (1);
     }
 
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index 0ebe705..1f97fef 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -1,3 +1,10 @@
+2005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+	* ioctl.c: (if_ioctl,if_ioctl_ipv6,if_get_flags) Replace perror with
+	  zlog_err.
+	* ioctl_solaris.c: (if_ioctl,if_ioctl_ipv6) Replace perror with
+	  zlog_err.
+
 2005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
 	* if_ioctl_solaris.c: (interface_list_ioctl) Save errno before calling
diff --git a/zebra/ioctl.c b/zebra/ioctl.c
index e28d359..56de810 100644
--- a/zebra/ioctl.c
+++ b/zebra/ioctl.c
@@ -54,9 +54,10 @@
   sock = socket (AF_INET, SOCK_DGRAM, 0);
   if (sock < 0)
     {
+      int save_errno = errno;
       if (zserv_privs.change(ZPRIVS_LOWER))
         zlog (NULL, LOG_ERR, "Can't lower privileges");
-      perror ("socket");
+      zlog_err("Cannot create UDP socket: %s", safe_strerror(save_errno));
       exit (1);
     }
   if ((ret = ioctl (sock, request, buffer)) < 0)
@@ -86,9 +87,11 @@
   sock = socket (AF_INET6, SOCK_DGRAM, 0);
   if (sock < 0)
     {
+      int save_errno = errno;
       if (zserv_privs.change(ZPRIVS_LOWER))
         zlog (NULL, LOG_ERR, "Can't lower privileges");
-      perror ("socket");
+      zlog_err("Cannot create IPv6 datagram socket: %s",
+	       safe_strerror(save_errno));
       exit (1);
     }
 
@@ -343,7 +346,7 @@
   ret = if_ioctl (SIOCGIFFLAGS, (caddr_t) &ifreq);
   if (ret < 0) 
     {
-      perror ("ioctl");
+      zlog_err("if_ioctl(SIOCGIFFLAGS) failed: %s", safe_strerror(errno));
       return;
     }
 
diff --git a/zebra/ioctl_solaris.c b/zebra/ioctl_solaris.c
index 5ec327a..43e1e83 100644
--- a/zebra/ioctl_solaris.c
+++ b/zebra/ioctl_solaris.c
@@ -55,9 +55,10 @@
   sock = socket (AF_INET, SOCK_DGRAM, 0);
   if (sock < 0)
     {
+      int save_errno = errno;
       if (zserv_privs.change(ZPRIVS_LOWER))
         zlog (NULL, LOG_ERR, "Can't lower privileges");
-      perror ("socket");
+      zlog_err("Cannot create UDP socket: %s", safe_strerror(save_errno));
       exit (1);
     }
 
@@ -92,9 +93,11 @@
   sock = socket (AF_INET6, SOCK_DGRAM, 0);
   if (sock < 0)
     {
+      int save_errno = errno;
       if (zserv_privs.change(ZPRIVS_LOWER))
         zlog (NULL, LOG_ERR, "Can't lower privileges");
-      perror ("socket");
+      zlog_err("Cannot create IPv6 datagram socket: %s",
+	       safe_strerror(save_errno));
       exit (1);
     }