Replace perror() with wpa_printf(strerror) in ctrl_iface calls

This replaces number of perror() calls with wpa_printf() to get the
error messages embedded within rest of the debug messages in the same
stream instead of pushing these to stderr which may get directed to
another location.

Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2013-08-26 11:46:21 +03:00
parent 024913a156
commit 2c6f8cf6c8
2 changed files with 51 additions and 29 deletions

View file

@ -1328,7 +1328,10 @@ void hostapd_ctrl_iface_deinit(struct hostapd_data *hapd)
"directory not empty - leaving it " "directory not empty - leaving it "
"behind"); "behind");
} else { } else {
perror("rmdir[ctrl_interface]"); wpa_printf(MSG_ERROR,
"rmdir[ctrl_interface=%s]: %s",
hapd->conf->ctrl_interface,
strerror(errno));
} }
} }
} }
@ -1558,7 +1561,10 @@ void hostapd_global_ctrl_iface_deinit(struct hapd_interfaces *interfaces)
"directory not empty - leaving it " "directory not empty - leaving it "
"behind"); "behind");
} else { } else {
perror("rmdir[ctrl_interface]"); wpa_printf(MSG_ERROR,
"rmdir[ctrl_interface=%s]: %s",
interfaces->global_iface_path,
strerror(errno));
} }
} }
os_free(interfaces->global_iface_path); os_free(interfaces->global_iface_path);

View file

@ -150,7 +150,8 @@ static void wpa_supplicant_ctrl_iface_receive(int sock, void *eloop_ctx,
res = recvfrom(sock, buf, sizeof(buf) - 1, 0, res = recvfrom(sock, buf, sizeof(buf) - 1, 0,
(struct sockaddr *) &from, &fromlen); (struct sockaddr *) &from, &fromlen);
if (res < 0) { if (res < 0) {
perror("recvfrom(ctrl_iface)"); wpa_printf(MSG_ERROR, "recvfrom(ctrl_iface): %s",
strerror(errno));
return; return;
} }
buf[res] = '\0'; buf[res] = '\0';
@ -327,7 +328,8 @@ wpa_supplicant_ctrl_iface_init(struct wpa_supplicant *wpa_s)
wpa_printf(MSG_DEBUG, "Using existing control " wpa_printf(MSG_DEBUG, "Using existing control "
"interface directory."); "interface directory.");
} else { } else {
perror("mkdir[ctrl_interface]"); wpa_printf(MSG_ERROR, "mkdir[ctrl_interface=%s]: %s",
dir, strerror(errno));
goto fail; goto fail;
} }
} }
@ -371,7 +373,8 @@ wpa_supplicant_ctrl_iface_init(struct wpa_supplicant *wpa_s)
} }
if (gid_set && chown(dir, -1, gid) < 0) { if (gid_set && chown(dir, -1, gid) < 0) {
perror("chown[ctrl_interface]"); wpa_printf(MSG_ERROR, "chown[ctrl_interface=%s,gid=%d]: %s",
dir, (int) gid, strerror(errno));
goto fail; goto fail;
} }
@ -391,7 +394,7 @@ wpa_supplicant_ctrl_iface_init(struct wpa_supplicant *wpa_s)
priv->sock = socket(PF_UNIX, SOCK_DGRAM, 0); priv->sock = socket(PF_UNIX, SOCK_DGRAM, 0);
if (priv->sock < 0) { if (priv->sock < 0) {
perror("socket(PF_UNIX)"); wpa_printf(MSG_ERROR, "socket(PF_UNIX): %s", strerror(errno));
goto fail; goto fail;
} }
@ -413,15 +416,15 @@ wpa_supplicant_ctrl_iface_init(struct wpa_supplicant *wpa_s)
" allow connections - assuming it was left" " allow connections - assuming it was left"
"over from forced program termination"); "over from forced program termination");
if (unlink(fname) < 0) { if (unlink(fname) < 0) {
perror("unlink[ctrl_iface]"); wpa_printf(MSG_ERROR,
wpa_printf(MSG_ERROR, "Could not unlink " "Could not unlink existing ctrl_iface socket '%s': %s",
"existing ctrl_iface socket '%s'", fname, strerror(errno));
fname);
goto fail; goto fail;
} }
if (bind(priv->sock, (struct sockaddr *) &addr, if (bind(priv->sock, (struct sockaddr *) &addr,
sizeof(addr)) < 0) { sizeof(addr)) < 0) {
perror("supp-ctrl-iface-init: bind(PF_UNIX)"); wpa_printf(MSG_ERROR, "supp-ctrl-iface-init: bind(PF_UNIX): %s",
strerror(errno));
goto fail; goto fail;
} }
wpa_printf(MSG_DEBUG, "Successfully replaced leftover " wpa_printf(MSG_DEBUG, "Successfully replaced leftover "
@ -438,12 +441,14 @@ wpa_supplicant_ctrl_iface_init(struct wpa_supplicant *wpa_s)
} }
if (gid_set && chown(fname, -1, gid) < 0) { if (gid_set && chown(fname, -1, gid) < 0) {
perror("chown[ctrl_interface/ifname]"); wpa_printf(MSG_ERROR, "chown[ctrl_interface=%s,gid=%d]: %s",
fname, (int) gid, strerror(errno));
goto fail; goto fail;
} }
if (chmod(fname, S_IRWXU | S_IRWXG) < 0) { if (chmod(fname, S_IRWXU | S_IRWXG) < 0) {
perror("chmod[ctrl_interface/ifname]"); wpa_printf(MSG_ERROR, "chmod[ctrl_interface=%s]: %s",
fname, strerror(errno));
goto fail; goto fail;
} }
os_free(fname); os_free(fname);
@ -460,7 +465,8 @@ havesock:
if (flags >= 0) { if (flags >= 0) {
flags |= O_NONBLOCK; flags |= O_NONBLOCK;
if (fcntl(priv->sock, F_SETFL, flags) < 0) { if (fcntl(priv->sock, F_SETFL, flags) < 0) {
perror("fcntl(ctrl, O_NONBLOCK)"); wpa_printf(MSG_INFO, "fcntl(ctrl, O_NONBLOCK): %s",
strerror(errno));
/* Not fatal, continue on.*/ /* Not fatal, continue on.*/
} }
} }
@ -530,7 +536,9 @@ void wpa_supplicant_ctrl_iface_deinit(struct ctrl_iface_priv *priv)
"directory not empty - leaving it " "directory not empty - leaving it "
"behind"); "behind");
} else { } else {
perror("rmdir[ctrl_interface]"); wpa_printf(MSG_ERROR,
"rmdir[ctrl_interface=%s]: %s",
dir, strerror(errno));
} }
} }
os_free(buf); os_free(buf);
@ -638,7 +646,8 @@ void wpa_supplicant_ctrl_iface_wait(struct ctrl_iface_priv *priv)
res = recvfrom(priv->sock, buf, sizeof(buf) - 1, 0, res = recvfrom(priv->sock, buf, sizeof(buf) - 1, 0,
(struct sockaddr *) &from, &fromlen); (struct sockaddr *) &from, &fromlen);
if (res < 0) { if (res < 0) {
perror("recvfrom(ctrl_iface)"); wpa_printf(MSG_ERROR, "recvfrom(ctrl_iface): %s",
strerror(errno));
continue; continue;
} }
buf[res] = '\0'; buf[res] = '\0';
@ -681,7 +690,8 @@ static void wpa_supplicant_global_ctrl_iface_receive(int sock, void *eloop_ctx,
res = recvfrom(sock, buf, sizeof(buf) - 1, 0, res = recvfrom(sock, buf, sizeof(buf) - 1, 0,
(struct sockaddr *) &from, &fromlen); (struct sockaddr *) &from, &fromlen);
if (res < 0) { if (res < 0) {
perror("recvfrom(ctrl_iface)"); wpa_printf(MSG_ERROR, "recvfrom(ctrl_iface): %s",
strerror(errno));
return; return;
} }
buf[res] = '\0'; buf[res] = '\0';
@ -767,7 +777,7 @@ wpa_supplicant_global_ctrl_iface_init(struct wpa_global *global)
priv->sock = socket(PF_UNIX, SOCK_DGRAM, 0); priv->sock = socket(PF_UNIX, SOCK_DGRAM, 0);
if (priv->sock < 0) { if (priv->sock < 0) {
perror("socket(PF_UNIX)"); wpa_printf(MSG_ERROR, "socket(PF_UNIX): %s", strerror(errno));
goto fail; goto fail;
} }
@ -784,7 +794,8 @@ wpa_supplicant_global_ctrl_iface_init(struct wpa_global *global)
if (bind(priv->sock, (struct sockaddr *) &addr, sizeof(addr)) < if (bind(priv->sock, (struct sockaddr *) &addr, sizeof(addr)) <
0) { 0) {
wpa_printf(MSG_ERROR, "supp-global-ctrl-iface-init: " wpa_printf(MSG_ERROR, "supp-global-ctrl-iface-init: "
"bind(PF_UNIX) failed: %s", strerror(errno)); "bind(PF_UNIX;%s) failed: %s",
ctrl, strerror(errno));
goto fail; goto fail;
} }
wpa_printf(MSG_DEBUG, "Using Abstract control socket '%s'", wpa_printf(MSG_DEBUG, "Using Abstract control socket '%s'",
@ -794,23 +805,23 @@ wpa_supplicant_global_ctrl_iface_init(struct wpa_global *global)
os_strlcpy(addr.sun_path, ctrl, sizeof(addr.sun_path)); os_strlcpy(addr.sun_path, ctrl, sizeof(addr.sun_path));
if (bind(priv->sock, (struct sockaddr *) &addr, sizeof(addr)) < 0) { if (bind(priv->sock, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
perror("supp-global-ctrl-iface-init (will try fixup): " wpa_printf(MSG_INFO, "supp-global-ctrl-iface-init(%s) (will try fixup): bind(PF_UNIX): %s",
"bind(PF_UNIX)"); ctrl, strerror(errno));
if (connect(priv->sock, (struct sockaddr *) &addr, if (connect(priv->sock, (struct sockaddr *) &addr,
sizeof(addr)) < 0) { sizeof(addr)) < 0) {
wpa_printf(MSG_DEBUG, "ctrl_iface exists, but does not" wpa_printf(MSG_DEBUG, "ctrl_iface exists, but does not"
" allow connections - assuming it was left" " allow connections - assuming it was left"
"over from forced program termination"); "over from forced program termination");
if (unlink(ctrl) < 0) { if (unlink(ctrl) < 0) {
perror("unlink[ctrl_iface]"); wpa_printf(MSG_ERROR,
wpa_printf(MSG_ERROR, "Could not unlink " "Could not unlink existing ctrl_iface socket '%s': %s",
"existing ctrl_iface socket '%s'", ctrl, strerror(errno));
ctrl);
goto fail; goto fail;
} }
if (bind(priv->sock, (struct sockaddr *) &addr, if (bind(priv->sock, (struct sockaddr *) &addr,
sizeof(addr)) < 0) { sizeof(addr)) < 0) {
perror("supp-glb-iface-init: bind(PF_UNIX)"); wpa_printf(MSG_ERROR, "supp-glb-iface-init: bind(PF_UNIX;%s): %s",
ctrl, strerror(errno));
goto fail; goto fail;
} }
wpa_printf(MSG_DEBUG, "Successfully replaced leftover " wpa_printf(MSG_DEBUG, "Successfully replaced leftover "
@ -852,12 +863,16 @@ wpa_supplicant_global_ctrl_iface_init(struct wpa_global *global)
(int) gid); (int) gid);
} }
if (chown(ctrl, -1, gid) < 0) { if (chown(ctrl, -1, gid) < 0) {
perror("chown[global_ctrl_interface/ifname]"); wpa_printf(MSG_ERROR,
"chown[global_ctrl_interface=%s,gid=%d]: %s",
ctrl, (int) gid, strerror(errno));
goto fail; goto fail;
} }
if (chmod(ctrl, S_IRWXU | S_IRWXG) < 0) { if (chmod(ctrl, S_IRWXU | S_IRWXG) < 0) {
perror("chmod[global_ctrl_interface/ifname]"); wpa_printf(MSG_ERROR,
"chmod[global_ctrl_interface=%s]: %s",
ctrl, strerror(errno));
goto fail; goto fail;
} }
} else { } else {
@ -874,7 +889,8 @@ havesock:
if (flags >= 0) { if (flags >= 0) {
flags |= O_NONBLOCK; flags |= O_NONBLOCK;
if (fcntl(priv->sock, F_SETFL, flags) < 0) { if (fcntl(priv->sock, F_SETFL, flags) < 0) {
perror("fcntl(ctrl, O_NONBLOCK)"); wpa_printf(MSG_INFO, "fcntl(ctrl, O_NONBLOCK): %s",
strerror(errno));
/* Not fatal, continue on.*/ /* Not fatal, continue on.*/
} }
} }