diff options
author | Jiří Klimeš <jklimes@redhat.com> | 2014-09-03 12:45:58 +0200 |
---|---|---|
committer | Jiří Klimeš <jklimes@redhat.com> | 2014-09-12 12:51:18 +0200 |
commit | e47235b38df66b0a39ec60dfd0655cbb0de2a9e3 (patch) | |
tree | c278d55df5d0df37528e32bebf09fbf1e581f06f | |
parent | b27669612e9cafa47714f57f42065227b2dd62d6 (diff) | |
download | NetworkManager-e47235b38df66b0a39ec60dfd0655cbb0de2a9e3.tar.gz |
dhcp: log DHCP client exit status better
-rw-r--r-- | src/dhcp-manager/nm-dhcp-client.c | 35 |
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; |