]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Return only full network line in list_networks
authorDmitry Shmidt <dimitrysh@google.com>
Wed, 3 Dec 2014 19:48:46 +0000 (11:48 -0800)
committerJouni Malinen <j@w1.fi>
Wed, 3 Dec 2014 20:31:53 +0000 (22:31 +0200)
It makes more sense to truncate at line boundary especially with the new
LAST_ID parameter.

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
wpa_supplicant/ctrl_iface.c

index adc2fd557bed64718b936fcea1f31f68d30c9fb7..462460eadd76285398a692d95cc3ac94b13ca7c6 100644 (file)
@@ -2050,7 +2050,7 @@ static int wpa_supplicant_ctrl_iface_log_level(struct wpa_supplicant *wpa_s,
 static int wpa_supplicant_ctrl_iface_list_networks(
        struct wpa_supplicant *wpa_s, char *cmd, char *buf, size_t buflen)
 {
-       char *pos, *end;
+       char *pos, *end, *prev;
        struct wpa_ssid *ssid;
        int ret;
 
@@ -2075,11 +2075,12 @@ static int wpa_supplicant_ctrl_iface_list_networks(
        }
 
        while (ssid) {
+               prev = pos;
                ret = os_snprintf(pos, end - pos, "%d\t%s",
                                  ssid->id,
                                  wpa_ssid_txt(ssid->ssid, ssid->ssid_len));
                if (ret < 0 || ret >= end - pos)
-                       return pos - buf;
+                       return prev - buf;
                pos += ret;
                if (ssid->bssid_set) {
                        ret = os_snprintf(pos, end - pos, "\t" MACSTR,
@@ -2088,7 +2089,7 @@ static int wpa_supplicant_ctrl_iface_list_networks(
                        ret = os_snprintf(pos, end - pos, "\tany");
                }
                if (ret < 0 || ret >= end - pos)
-                       return pos - buf;
+                       return prev - buf;
                pos += ret;
                ret = os_snprintf(pos, end - pos, "\t%s%s%s%s",
                                  ssid == wpa_s->current_ssid ?
@@ -2099,11 +2100,11 @@ static int wpa_supplicant_ctrl_iface_list_networks(
                                  ssid->disabled == 2 ? "[P2P-PERSISTENT]" :
                                  "");
                if (ret < 0 || ret >= end - pos)
-                       return pos - buf;
+                       return prev - buf;
                pos += ret;
                ret = os_snprintf(pos, end - pos, "\n");
                if (ret < 0 || ret >= end - pos)
-                       return pos - buf;
+                       return prev - buf;
                pos += ret;
 
                ssid = ssid->next;