summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiří Klimeš <jklimes@redhat.com>2014-09-03 12:45:58 +0200
committerJiří Klimeš <jklimes@redhat.com>2014-09-12 12:51:18 +0200
commite47235b38df66b0a39ec60dfd0655cbb0de2a9e3 (patch)
treec278d55df5d0df37528e32bebf09fbf1e581f06f
parentb27669612e9cafa47714f57f42065227b2dd62d6 (diff)
downloadNetworkManager-e47235b38df66b0a39ec60dfd0655cbb0de2a9e3.tar.gz
dhcp: log DHCP client exit status better
-rw-r--r--src/dhcp-manager/nm-dhcp-client.c35
1 files changed, 22 insertions, 13 deletions
diff --git a/src/dhcp-manager/nm-dhcp-client.c b/src/dhcp-manager/nm-dhcp-client.c
index ded7060bbc..75a243649f 100644
--- a/src/dhcp-manager/nm-dhcp-client.c
+++ b/src/dhcp-manager/nm-dhcp-client.c
@@ -306,21 +306,30 @@ daemon_watch_cb (GPid pid, gint status, gpointer user_data)
NMDhcpClient *self = NM_DHCP_CLIENT (user_data);
NMDhcpClientPrivate *priv = NM_DHCP_CLIENT_GET_PRIVATE (self);
NMDhcpState new_state;
+ guint64 log_domain;
+ guint ip_ver;
+
+ log_domain = priv->ipv6 ? LOGD_DHCP6 : LOGD_DHCP4;
+ ip_ver = priv->ipv6 ? 6 : 4;
+
+ if (WIFEXITED (status))
+ nm_log_info (log_domain, "(%s): DHCPv%d client pid %d exited with status %d",
+ priv->iface, ip_ver, pid, WEXITSTATUS (status));
+ else if (WIFSIGNALED (status))
+ nm_log_info (log_domain, "(%s): DHCPv%d client pid %d killed by signal %d",
+ priv->iface, ip_ver, pid, WTERMSIG (status));
+ else if (WIFSTOPPED(status))
+ nm_log_info (log_domain, "(%s): DHCPv%d client pid %d stopped by signal %d",
+ priv->iface, ip_ver, pid, WSTOPSIG (status));
+ else if (WIFCONTINUED (status))
+ nm_log_info (log_domain, "(%s): DHCPv%d client pid %d resumed (by SIGCONT)",
+ priv->iface, ip_ver, pid);
+ else
+ nm_log_warn (LOGD_DHCP, "DHCP client died abnormally");
- if (priv->ipv6) {
- nm_log_info (LOGD_DHCP6, "(%s): DHCPv6 client pid %d exited with status %d",
- priv->iface, pid,
- WIFEXITED (status) ? WEXITSTATUS (status) : -1);
- } else {
- nm_log_info (LOGD_DHCP4, "(%s): DHCPv4 client pid %d exited with status %d",
- priv->iface, pid,
- WIFEXITED (status) ? WEXITSTATUS (status) : -1);
- }
-
- if (!WIFEXITED (status)) {
+ if (!WIFEXITED (status))
new_state = NM_DHCP_STATE_FAIL;
- nm_log_warn (LOGD_DHCP, "DHCP client died abnormally");
- } else
+ else
new_state = NM_DHCP_STATE_DONE;
priv->pid = -1;