From dc35117ea9fe06a1c5f97472fad07213f124e4fa Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Mon, 22 Feb 2016 18:38:18 +0100 Subject: dhcp/systemd: refactor logging --- src/dhcp-manager/nm-dhcp-systemd.c | 97 +++++++++++++++++++++++--------------- 1 file changed, 58 insertions(+), 39 deletions(-) diff --git a/src/dhcp-manager/nm-dhcp-systemd.c b/src/dhcp-manager/nm-dhcp-systemd.c index 7bb69819c2..7f83a626af 100644 --- a/src/dhcp-manager/nm-dhcp-systemd.c +++ b/src/dhcp-manager/nm-dhcp-systemd.c @@ -58,6 +58,26 @@ typedef struct { /************************************************************/ +#define _NMLOG_PREFIX_NAME "dhcp" +#define _NMLOG(level, domain, ...) \ + G_STMT_START { \ + const NMLogLevel _level = (level); \ + const NMLogDomain _domain = (domain); \ + \ + if (nm_logging_enabled (_level, _domain)) { \ + const char *__ifname = self ? nm_dhcp_client_get_iface ((NMDhcpClient *) self) : NULL; \ + \ + _nm_log (_level, _domain, 0, \ + "%s%s%s%s%s: " _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ + _NMLOG_PREFIX_NAME, \ + (_domain == LOGD_DHCP4 ? "4" : (_domain == LOGD_DHCP6 ? "6" : "")), \ + NM_PRINT_FMT_QUOTED (__ifname, "[", __ifname, "]", "") \ + _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ + } \ + } G_STMT_END + +/************************************************************/ + #define DHCP_OPTION_NIS_DOMAIN 40 #define DHCP_OPTION_NIS_SERVERS 41 #define DHCP_OPTION_DOMAIN_SEARCH 119 @@ -465,15 +485,15 @@ bound4_handle (NMDhcpSystemd *self) GError *error = NULL; int r; - nm_log_dbg (LOGD_DHCP4, "(%s): lease available", iface); - r = sd_dhcp_client_get_lease (priv->client4, &lease); if (r < 0 || !lease) { - nm_log_warn (LOGD_DHCP4, "(%s): no lease!", iface); + _LOGW (LOGD_DHCP4, "no lease!"); nm_dhcp_client_set_state (NM_DHCP_CLIENT (self), NM_DHCP_STATE_FAIL, NULL, NULL); return; } + _LOGD (LOGD_DHCP4, "lease available"); + options = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_free); ip4_config = lease_to_ip4_config (iface, nm_dhcp_client_get_ifindex (NM_DHCP_CLIENT (self)), @@ -499,7 +519,7 @@ bound4_handle (NMDhcpSystemd *self) G_OBJECT (ip4_config), options); } else { - nm_log_warn (LOGD_DHCP4, "(%s): %s", iface, error->message); + _LOGW (LOGD_DHCP4, "invalid lease received: %s", error->message); nm_dhcp_client_set_state (NM_DHCP_CLIENT (self), NM_DHCP_STATE_FAIL, NULL, NULL); g_clear_error (&error); } @@ -513,11 +533,10 @@ dhcp_event_cb (sd_dhcp_client *client, int event, gpointer user_data) { NMDhcpSystemd *self = NM_DHCP_SYSTEMD (user_data); NMDhcpSystemdPrivate *priv = NM_DHCP_SYSTEMD_GET_PRIVATE (self); - const char *iface = nm_dhcp_client_get_iface (NM_DHCP_CLIENT (self)); g_assert (priv->client4 == client); - nm_log_dbg (LOGD_DHCP4, "(%s): DHCPv4 client event %d", iface, event); + _LOGD (LOGD_DHCP4, "client event %d", event); switch (event) { case SD_DHCP_CLIENT_EVENT_EXPIRED: @@ -532,7 +551,7 @@ dhcp_event_cb (sd_dhcp_client *client, int event, gpointer user_data) bound4_handle (self); break; default: - nm_log_warn (LOGD_DHCP4, "(%s): unhandled DHCP event %d", iface, event); + _LOGW (LOGD_DHCP4, "unhandled event %d", event); break; } } @@ -551,7 +570,8 @@ get_arp_type (const GByteArray *hwaddr) static gboolean ip4_start (NMDhcpClient *client, const char *dhcp_anycast_addr, const char *last_ip4_address) { - NMDhcpSystemdPrivate *priv = NM_DHCP_SYSTEMD_GET_PRIVATE (client); + NMDhcpSystemd *self = NM_DHCP_SYSTEMD (client); + NMDhcpSystemdPrivate *priv = NM_DHCP_SYSTEMD_GET_PRIVATE (self); const char *iface = nm_dhcp_client_get_iface (client); const GByteArray *hwaddr; sd_dhcp_lease *lease = NULL; @@ -572,13 +592,13 @@ ip4_start (NMDhcpClient *client, const char *dhcp_anycast_addr, const char *last r = sd_dhcp_client_new (&priv->client4); if (r < 0) { - nm_log_warn (LOGD_DHCP4, "(%s): failed to create DHCPv4 client (%d)", iface, r); + _LOGW (LOGD_DHCP4, "failed to create client (%d)", r); return FALSE; } r = sd_dhcp_client_attach_event (priv->client4, NULL, 0); if (r < 0) { - nm_log_warn (LOGD_DHCP4, "(%s): failed to attach DHCP event (%d)", iface, r); + _LOGW (LOGD_DHCP4, "failed to attach event (%d)", r); goto error; } @@ -586,7 +606,7 @@ ip4_start (NMDhcpClient *client, const char *dhcp_anycast_addr, const char *last if (hwaddr) { arp_type= get_arp_type (hwaddr); if (arp_type == ARPHRD_NONE) { - nm_log_warn (LOGD_DHCP4, "(%s): failed to determine ARP type", iface); + _LOGW (LOGD_DHCP4, "failed to determine ARP type"); goto error; } @@ -595,26 +615,26 @@ ip4_start (NMDhcpClient *client, const char *dhcp_anycast_addr, const char *last hwaddr->len, arp_type); if (r < 0) { - nm_log_warn (LOGD_DHCP4, "(%s): failed to set DHCP MAC address (%d)", iface, r); + _LOGW (LOGD_DHCP4, "failed to set MAC address (%d)", r); goto error; } } r = sd_dhcp_client_set_index (priv->client4, nm_dhcp_client_get_ifindex (client)); if (r < 0) { - nm_log_warn (LOGD_DHCP4, "(%s): failed to set DHCP ifindex (%d)", iface, r); + _LOGW (LOGD_DHCP4, "failed to set ifindex (%d)", r); goto error; } r = sd_dhcp_client_set_callback (priv->client4, dhcp_event_cb, client); if (r < 0) { - nm_log_warn (LOGD_DHCP4, "(%s): failed to set DHCP callback (%d)", iface, r); + _LOGW (LOGD_DHCP4, "failed to set callback (%d)", r); goto error; } r = sd_dhcp_client_set_request_broadcast (priv->client4, true); if (r < 0) { - nm_log_warn (LOGD_DHCP4, "(%s): failed to set DHCP broadcast (%d)", iface, r); + _LOGW (LOGD_DHCP4, "failed to set broadcast (%d)", r); goto error; } @@ -628,7 +648,7 @@ ip4_start (NMDhcpClient *client, const char *dhcp_anycast_addr, const char *last if (last_addr.s_addr) { r = sd_dhcp_client_set_request_address (priv->client4, &last_addr); if (r < 0) { - nm_log_warn (LOGD_DHCP4, "(%s): failed to set last IPv4 address (%d)", iface, r); + _LOGW (LOGD_DHCP4, "failed to set last IPv4 address (%d)", r); goto error; } } @@ -676,7 +696,7 @@ ip4_start (NMDhcpClient *client, const char *dhcp_anycast_addr, const char *last free (prefix); if (r < 0) { - nm_log_warn (LOGD_DHCP4, "(%s): failed to set DHCP hostname (%d)", iface, r); + _LOGW (LOGD_DHCP4, "failed to set hostname (%d)", r); goto error; } } @@ -685,14 +705,14 @@ ip4_start (NMDhcpClient *client, const char *dhcp_anycast_addr, const char *last if (fqdn) { r = sd_dhcp_client_set_hostname (priv->client4, fqdn); if (r < 0) { - nm_log_warn (LOGD_DHCP4, "(%s): failed to set DHCP FQDN (%d)", iface, r); + _LOGW (LOGD_DHCP4, "failed to set FQDN (%d)", r); goto error; } } r = sd_dhcp_client_start (priv->client4); if (r < 0) { - nm_log_warn (LOGD_DHCP4, "(%s): failed to start DHCP (%d)", iface, r); + _LOGW (LOGD_DHCP4, "failed to start client (%d)", r); goto error; } @@ -810,12 +830,12 @@ bound6_handle (NMDhcpSystemd *self) r = sd_dhcp6_client_get_lease (priv->client6, &lease); if (r < 0 || !lease) { - nm_log_warn (LOGD_DHCP6, "(%s): no lease!", iface); + _LOGW (LOGD_DHCP6, "no lease!"); nm_dhcp_client_set_state (NM_DHCP_CLIENT (self), NM_DHCP_STATE_FAIL, NULL, NULL); return; } - nm_log_dbg (LOGD_DHCP6, "(%s): lease available", iface); + _LOGD (LOGD_DHCP6, "lease available"); options = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_free); ip6_config = lease_to_ip6_config (iface, @@ -832,7 +852,7 @@ bound6_handle (NMDhcpSystemd *self) G_OBJECT (ip6_config), options); } else { - nm_log_warn (LOGD_DHCP6, "(%s): %s", iface, error->message); + _LOGW (LOGD_DHCP6, "invalid lease received: %s", error->message); nm_dhcp_client_set_state (NM_DHCP_CLIENT (self), NM_DHCP_STATE_FAIL, NULL, NULL); } } @@ -842,11 +862,10 @@ dhcp6_event_cb (sd_dhcp6_client *client, int event, gpointer user_data) { NMDhcpSystemd *self = NM_DHCP_SYSTEMD (user_data); NMDhcpSystemdPrivate *priv = NM_DHCP_SYSTEMD_GET_PRIVATE (self); - const char *iface = nm_dhcp_client_get_iface (NM_DHCP_CLIENT (self)); g_assert (priv->client6 == client); - nm_log_dbg (LOGD_DHCP6, "(%s): DHCPv6 client event %d", iface, event); + _LOGD (LOGD_DHCP6, "client event %d", event); switch (event) { case SD_DHCP6_CLIENT_EVENT_RETRANS_MAX: @@ -860,7 +879,7 @@ dhcp6_event_cb (sd_dhcp6_client *client, int event, gpointer user_data) bound6_handle (self); break; default: - nm_log_warn (LOGD_DHCP6, "(%s): unhandled DHCPv6 event %d", iface, event); + _LOGW (LOGD_DHCP6, "unhandled event %d", event); break; } } @@ -873,7 +892,8 @@ ip6_start (NMDhcpClient *client, NMSettingIP6ConfigPrivacy privacy, const GByteArray *duid) { - NMDhcpSystemdPrivate *priv = NM_DHCP_SYSTEMD_GET_PRIVATE (client); + NMDhcpSystemd *self = NM_DHCP_SYSTEMD (client); + NMDhcpSystemdPrivate *priv = NM_DHCP_SYSTEMD_GET_PRIVATE (self); const char *iface = nm_dhcp_client_get_iface (client); const GByteArray *hwaddr; int r, i; @@ -888,7 +908,7 @@ ip6_start (NMDhcpClient *client, r = sd_dhcp6_client_new (&priv->client6); if (r < 0) { - nm_log_warn (LOGD_DHCP6, "(%s): failed to create DHCPv6 client (%d)", iface, r); + _LOGW (LOGD_DHCP6, "failed to create client (%d)", r); return FALSE; } @@ -900,13 +920,13 @@ ip6_start (NMDhcpClient *client, duid->data + 2, duid->len - 2); if (r < 0) { - nm_log_warn (LOGD_DHCP6, "(%s): failed to create DHCPv6 client (%d)", iface, r); + _LOGW (LOGD_DHCP6, "failed to set DUID (%d)", r); return FALSE; } r = sd_dhcp6_client_attach_event (priv->client6, NULL, 0); if (r < 0) { - nm_log_warn (LOGD_DHCP6, "(%s): failed to attach DHCP event (%d)", iface, r); + _LOGW (LOGD_DHCP6, "failed to attach event (%d)", r); goto error; } @@ -917,20 +937,20 @@ ip6_start (NMDhcpClient *client, hwaddr->len, get_arp_type (hwaddr)); if (r < 0) { - nm_log_warn (LOGD_DHCP6, "(%s): failed to set DHCP MAC address (%d)", iface, r); + _LOGW (LOGD_DHCP6, "failed to set MAC address (%d)", r); goto error; } } r = sd_dhcp6_client_set_index (priv->client6, nm_dhcp_client_get_ifindex (client)); if (r < 0) { - nm_log_warn (LOGD_DHCP6, "(%s): failed to set DHCP ifindex (%d)", iface, r); + _LOGW (LOGD_DHCP6, "failed to set ifindex (%d)", r); goto error; } r = sd_dhcp6_client_set_callback (priv->client6, dhcp6_event_cb, client); if (r < 0) { - nm_log_warn (LOGD_DHCP6, "(%s): failed to set DHCP callback (%d)", iface, r); + _LOGW (LOGD_DHCP6, "failed to set callback (%d)", r); goto error; } @@ -942,13 +962,13 @@ ip6_start (NMDhcpClient *client, r = sd_dhcp6_client_set_local_address (priv->client6, ll_addr); if (r < 0) { - nm_log_warn (LOGD_DHCP6, "(%s): failed to set local address (%d)", iface, r); + _LOGW (LOGD_DHCP6, "failed to set local address (%d)", r); goto error; } r = sd_dhcp6_client_start (priv->client6); if (r < 0) { - nm_log_warn (LOGD_DHCP6, "(%s): failed to start DHCP (%d)", iface, r); + _LOGW (LOGD_DHCP6, "failed to start client (%d)", r); goto error; } @@ -963,7 +983,8 @@ error: static void stop (NMDhcpClient *client, gboolean release, const GByteArray *duid) { - NMDhcpSystemdPrivate *priv = NM_DHCP_SYSTEMD_GET_PRIVATE (client); + NMDhcpSystemd *self = NM_DHCP_SYSTEMD (client); + NMDhcpSystemdPrivate *priv = NM_DHCP_SYSTEMD_GET_PRIVATE (self); int r = 0; if (priv->client4) { @@ -975,10 +996,8 @@ stop (NMDhcpClient *client, gboolean release, const GByteArray *duid) } if (r) { - nm_log_warn (priv->client6 ? LOGD_DHCP6 : LOGD_DHCP4, - "(%s): failed to stop DHCP client (%d)", - nm_dhcp_client_get_iface (client), - r); + _LOGW (priv->client6 ? LOGD_DHCP6 : LOGD_DHCP4, + "failed to stop DHCP client (%d)", r); } } -- cgit v1.2.1