3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-12-22 13:02:44 +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;
}
bool network_seen(uint32_t type, const char *ssid)
bool network_seen(struct network *network)
{
struct timespec mtim;
int err;
struct network_info *info;
struct network_info search;
search.type = type;
strncpy(search.ssid, ssid, 32);
search.type = network->security;
strncpy(search.ssid, network->ssid, 32);
search.ssid[32] = 0;
info = l_queue_find(networks, network_info_match, &search);
if (info)
return true;
switch(type) {
switch (network->security) {
case SECURITY_PSK:
err = storage_network_get_mtime("psk", ssid, &mtim);
err = storage_network_get_mtime("psk", network->ssid, &mtim);
break;
default:
return false;
@ -126,8 +126,8 @@ bool network_seen(uint32_t type, const char *ssid)
return false;
info = l_new(struct network_info, 1);
info->type = type;
strncpy(info->ssid, ssid, 32);
info->type = network->security;
strncpy(info->ssid, network->ssid, 32);
info->ssid[32] = 0;
memcpy(&info->connected_time, &mtim, sizeof(struct timespec));
@ -136,30 +136,31 @@ bool network_seen(uint32_t type, const char *ssid)
return true;
}
bool network_connected(uint32_t type, const char *ssid)
bool network_connected(struct network *network)
{
int err;
struct network_info *info;
struct network_info search;
const char *strtype;
search.type = type;
strncpy(search.ssid, ssid, 32);
search.type = network->security;
strncpy(search.ssid, network->ssid, 32);
search.ssid[32] = 0;
info = l_queue_remove_if(networks, network_info_match, &search);
if (!info)
return false;
strtype = security_to_str(type);
strtype = security_to_str(network->security);
if (!strtype)
goto fail;
err = storage_network_touch(strtype, ssid);
err = storage_network_touch(strtype, network->ssid);
if (err < 0)
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)
goto fail;

View File

@ -23,9 +23,10 @@
#include <stdbool.h>
struct netdev;
struct network;
bool network_seen(uint32_t type, const char *ssid);
bool network_connected(uint32_t type, const char *ssid);
bool network_seen(struct network *network);
bool network_connected(struct network *network);
double network_rankmod(uint32_t type, const char *ssid);
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);
}
network_connected(network_get_security(netdev->connected_network),
network_get_ssid(netdev->connected_network));
network_connected(netdev->connected_network);
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",
network_get_ssid(network), security_to_str(security));
network_seen(security, network_get_ssid(network));
network_seen(network);
}
network_bss_add(network, bss);