[PATCH 1/1] STA Fix error case prints for nl_recvmsgs
Jithu Jance
jithu
Thu May 22 22:51:07 PDT 2014
Hi Jouni,
> Could you please clarify when nl_recvmsgs() can return > 0? It is
> documented with "return 0 on success or a negative error code from
> nl_recv()" and the implementation in libnl is clearly not going to be
> able to return > 0..
>
> And if it were possible to get > 0 from here, the other nl_recvmsgs()
> calls in driver_nl80211.c should also be modified to remain
> consistent.
>
I got the below prints on a particluar Android platform.
I/wpa_supplicant( 2637): nl80211: send_and_recv->nl_recvmsgs failed: 20
I/wpa_supplicant( 2637): nl80211: send_and_recv->nl_recvmsgs failed: 20
In JellyBean libnl_2 code, I see that the nl_recvmsgs returns postive values
too. In some cases, nl_recvmgs return the output of nl_recv function. nl_recv
function can return Number of bytes read, 0 or a negative error code.
Looks like this postive return value for nl_recvmsgs may be specific to Android.
Signed-off-by: Jithu Jance <jithu at broadcom.com>
---
src/drivers/driver_nl80211.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index 709e13a..1ca1592 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -652,7 +652,7 @@ static int send_and_recv(struct nl80211_global *global,
while (err > 0) {
int res = nl_recvmsgs(nl_handle, cb);
- if (res) {
+ if (res < 0) {
wpa_printf(MSG_INFO,
"nl80211: %s->nl_recvmsgs failed: %d",
__func__, res);
@@ -910,7 +910,7 @@ static void nl80211_recv_beacons(int sock, void *eloop_ctx, void *handle)
wpa_printf(MSG_EXCESSIVE, "nl80211: Beacon event message available");
res = nl_recvmsgs(handle, w->nl_cb);
- if (res) {
+ if (res < 0) {
wpa_printf(MSG_INFO, "nl80211: %s->nl_recvmsgs failed: %d",
__func__, res);
}
@@ -3276,7 +3276,7 @@ static void wpa_driver_nl80211_event_receive(int sock, void *eloop_ctx,
wpa_printf(MSG_MSGDUMP, "nl80211: Event message available");
res = nl_recvmsgs(handle, cb);
- if (res) {
+ if (res < 0) {
wpa_printf(MSG_INFO, "nl80211: %s->nl_recvmsgs failed: %d",
__func__, res);
}
--
1.7.9.5
More information about the Hostap
mailing list