From 7d2981b4b3245d5ead2f3156a6b6c440691691cf Mon Sep 17 00:00:00 2001 From: Pavel Rochnyack Date: Thu, 20 Oct 2016 20:24:14 +0600 Subject: [PATCH] powerdns plugin: Improved error reporting Show socket path in log messages. Closes: #1995 --- src/powerdns.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/powerdns.c b/src/powerdns.c index 7e9e8747..d7aa4e9d 100644 --- a/src/powerdns.c +++ b/src/powerdns.c @@ -43,6 +43,7 @@ # define UNIX_PATH_MAX sizeof (((struct sockaddr_un *)0)->sun_path) #endif #define FUNC_ERROR(func) do { char errbuf[1024]; ERROR ("powerdns plugin: %s failed: %s", func, sstrerror (errno, errbuf, sizeof (errbuf))); } while (0) +#define SOCK_ERROR(func, sockpath) do { char errbuf[1024]; ERROR ("powerdns plugin: Socket `%s` %s failed: %s", sockpath, func, sstrerror (errno, errbuf, sizeof (errbuf))); } while (0) #define SERVER_SOCKET LOCALSTATEDIR"/run/pdns.controlsocket" #define SERVER_COMMAND "SHOW * \n" @@ -394,7 +395,7 @@ static int powerdns_get_data_dgram (list_item_t *item, /* {{{ */ status = unlink (sa_unix.sun_path); if ((status != 0) && (errno != ENOENT)) { - FUNC_ERROR ("unlink"); + SOCK_ERROR ("unlink", sa_unix.sun_path); close (sd); return (-1); } @@ -406,7 +407,7 @@ static int powerdns_get_data_dgram (list_item_t *item, /* {{{ */ status = bind (sd, (struct sockaddr *) &sa_unix, sizeof (sa_unix)); if (status != 0) { - FUNC_ERROR ("bind"); + SOCK_ERROR ("bind", sa_unix.sun_path); break; } @@ -414,7 +415,7 @@ static int powerdns_get_data_dgram (list_item_t *item, /* {{{ */ status = chmod (sa_unix.sun_path, 0666); if (status != 0) { - FUNC_ERROR ("chmod"); + SOCK_ERROR ("chmod", sa_unix.sun_path); break; } @@ -427,7 +428,7 @@ static int powerdns_get_data_dgram (list_item_t *item, /* {{{ */ status = setsockopt (sd, SOL_SOCKET, SO_RCVTIMEO, &stv_timeout, sizeof (stv_timeout)); if (status != 0) { - FUNC_ERROR ("setsockopt"); + SOCK_ERROR ("setsockopt", sa_unix.sun_path); break; } @@ -435,21 +436,21 @@ static int powerdns_get_data_dgram (list_item_t *item, /* {{{ */ sizeof (item->sockaddr)); if (status != 0) { - FUNC_ERROR ("connect"); + SOCK_ERROR ("connect", sa_unix.sun_path); break; } status = send (sd, item->command, strlen (item->command), 0); if (status < 0) { - FUNC_ERROR ("send"); + SOCK_ERROR ("send", sa_unix.sun_path); break; } status = recv (sd, temp, sizeof (temp), /* flags = */ 0); if (status < 0) { - FUNC_ERROR ("recv"); + SOCK_ERROR ("recv", sa_unix.sun_path); break; } buffer_size = status + 1; @@ -512,7 +513,7 @@ static int powerdns_get_data_stream (list_item_t *item, /* {{{ */ sizeof (item->sockaddr)); if (status != 0) { - FUNC_ERROR ("connect"); + SOCK_ERROR ("connect", item->sockaddr.sun_path); close (sd); return (-1); } @@ -522,7 +523,7 @@ static int powerdns_get_data_stream (list_item_t *item, /* {{{ */ /* flags = */ 0); if (status < 0) { - FUNC_ERROR ("send"); + SOCK_ERROR ("send", item->sockaddr.sun_path); close (sd); return (-1); } @@ -534,7 +535,7 @@ static int powerdns_get_data_stream (list_item_t *item, /* {{{ */ status = recv (sd, temp, sizeof (temp), /* flags = */ 0); if (status < 0) { - FUNC_ERROR ("recv"); + SOCK_ERROR ("recv", item->sockaddr.sun_path); break; } else if (status == 0) -- 2.11.0