wpa_gui: Show entire list of networks
Use LAST_ID of LIST_NETWORKS to load all the network entries iteratively if there is large enough number of networks to not fit in a single response. Signed-off-by: Victor Ananyev <vindex10@gmail.com>
This commit is contained in:
parent
a3b59fa111
commit
eadfeb0e93
1 changed files with 17 additions and 2 deletions
|
@ -12,6 +12,8 @@
|
||||||
|
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <chrono>
|
||||||
|
#include <thread>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QCloseEvent>
|
#include <QCloseEvent>
|
||||||
#include <QImageReader>
|
#include <QImageReader>
|
||||||
|
@ -713,9 +715,22 @@ void WpaGui::updateNetworks()
|
||||||
strstr(flags, "[DISABLED]") == NULL)
|
strstr(flags, "[DISABLED]") == NULL)
|
||||||
first_active = networkSelect->count() - 1;
|
first_active = networkSelect->count() - 1;
|
||||||
|
|
||||||
if (last)
|
|
||||||
break;
|
|
||||||
start = end + 1;
|
start = end + 1;
|
||||||
|
if (*start && strchr(start, '\n'))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
/* avoid race conditions */
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(200));
|
||||||
|
QString cmd("LIST_NETWORKS LAST_ID=");
|
||||||
|
cmd.append(id);
|
||||||
|
if (ctrlRequest(cmd.toLocal8Bit().constData(), buf, &len) < 0)
|
||||||
|
break;
|
||||||
|
|
||||||
|
buf[len] = '\0';
|
||||||
|
start = strchr(buf, '\n');
|
||||||
|
if (!start)
|
||||||
|
break;
|
||||||
|
start++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (networkSelect->count() > 1)
|
if (networkSelect->count() > 1)
|
||||||
|
|
Loading…
Reference in a new issue