3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-12-22 21:22:37 +01:00

networks: Simplify parameters

for network_seen and network_connected

Only accept a struct network pointer instead of separately the ssid and
security type.  This is needed so we can do some more simplification in
the next patch by having access to the network struct.
This commit is contained in:
Andrew Zaborowski 2016-05-28 05:27:13 +02:00 committed by Denis Kenzior
parent 9fbdba0957
commit 1ba2630216
3 changed files with 19 additions and 18 deletions

View File

@ -99,24 +99,24 @@ static bool network_info_match(const void *a, const void *b)
return true; return true;
} }
bool network_seen(uint32_t type, const char *ssid) bool network_seen(struct network *network)
{ {
struct timespec mtim; struct timespec mtim;
int err; int err;
struct network_info *info; struct network_info *info;
struct network_info search; struct network_info search;
search.type = type; search.type = network->security;
strncpy(search.ssid, ssid, 32); strncpy(search.ssid, network->ssid, 32);
search.ssid[32] = 0; search.ssid[32] = 0;
info = l_queue_find(networks, network_info_match, &search); info = l_queue_find(networks, network_info_match, &search);
if (info) if (info)
return true; return true;
switch(type) { switch (network->security) {
case SECURITY_PSK: case SECURITY_PSK:
err = storage_network_get_mtime("psk", ssid, &mtim); err = storage_network_get_mtime("psk", network->ssid, &mtim);
break; break;
default: default:
return false; return false;
@ -126,8 +126,8 @@ bool network_seen(uint32_t type, const char *ssid)
return false; return false;
info = l_new(struct network_info, 1); info = l_new(struct network_info, 1);
info->type = type; info->type = network->security;
strncpy(info->ssid, ssid, 32); strncpy(info->ssid, network->ssid, 32);
info->ssid[32] = 0; info->ssid[32] = 0;
memcpy(&info->connected_time, &mtim, sizeof(struct timespec)); memcpy(&info->connected_time, &mtim, sizeof(struct timespec));
@ -136,30 +136,31 @@ bool network_seen(uint32_t type, const char *ssid)
return true; return true;
} }
bool network_connected(uint32_t type, const char *ssid) bool network_connected(struct network *network)
{ {
int err; int err;
struct network_info *info; struct network_info *info;
struct network_info search; struct network_info search;
const char *strtype; const char *strtype;
search.type = type; search.type = network->security;
strncpy(search.ssid, ssid, 32); strncpy(search.ssid, network->ssid, 32);
search.ssid[32] = 0; search.ssid[32] = 0;
info = l_queue_remove_if(networks, network_info_match, &search); info = l_queue_remove_if(networks, network_info_match, &search);
if (!info) if (!info)
return false; return false;
strtype = security_to_str(type); strtype = security_to_str(network->security);
if (!strtype) if (!strtype)
goto fail; goto fail;
err = storage_network_touch(strtype, ssid); err = storage_network_touch(strtype, network->ssid);
if (err < 0) if (err < 0)
goto fail; goto fail;
err = storage_network_get_mtime(strtype, ssid, &info->connected_time); err = storage_network_get_mtime(strtype, network->ssid,
&info->connected_time);
if (err < 0) if (err < 0)
goto fail; goto fail;

View File

@ -23,9 +23,10 @@
#include <stdbool.h> #include <stdbool.h>
struct netdev; struct netdev;
struct network;
bool network_seen(uint32_t type, const char *ssid); bool network_seen(struct network *network);
bool network_connected(uint32_t type, const char *ssid); bool network_connected(struct network *network);
double network_rankmod(uint32_t type, const char *ssid); double network_rankmod(uint32_t type, const char *ssid);
struct network *network_create(struct netdev *device, struct network *network_create(struct netdev *device,

View File

@ -810,8 +810,7 @@ static void operstate_cb(bool result, void *user_data)
dbus_pending_reply(&netdev->connect_pending, reply); dbus_pending_reply(&netdev->connect_pending, reply);
} }
network_connected(network_get_security(netdev->connected_network), network_connected(netdev->connected_network);
network_get_ssid(netdev->connected_network));
netdev_enter_state(netdev, DEVICE_STATE_CONNECTED); netdev_enter_state(netdev, DEVICE_STATE_CONNECTED);
} }
@ -1299,7 +1298,7 @@ static void process_bss(struct netdev *netdev, struct scan_bss *bss)
l_debug("Added new Network \"%s\" security %s", l_debug("Added new Network \"%s\" security %s",
network_get_ssid(network), security_to_str(security)); network_get_ssid(network), security_to_str(security));
network_seen(security, network_get_ssid(network)); network_seen(network);
} }
network_bss_add(network, bss); network_bss_add(network, bss);