diff options
Diffstat (limited to 'zebra/ioctl.c')
-rw-r--r-- | zebra/ioctl.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/zebra/ioctl.c b/zebra/ioctl.c index e28d359e..56de810c 100644 --- a/zebra/ioctl.c +++ b/zebra/ioctl.c @@ -54,9 +54,10 @@ if_ioctl (u_long request, caddr_t buffer) 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 @@ if_ioctl_ipv6 (u_long request, caddr_t buffer) 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 @@ if_get_flags (struct interface *ifp) ret = if_ioctl (SIOCGIFFLAGS, (caddr_t) &ifreq); if (ret < 0) { - perror ("ioctl"); + zlog_err("if_ioctl(SIOCGIFFLAGS) failed: %s", safe_strerror(errno)); return; } |