[PATCH] frame-xchg.c: fix build with glibc < 2.24
by Fabrice Fontaine
SOL_NETLINK is used since commit
87a198111af1ea67053895f7435fb99e3cdd2159 resulting in the following
build failure with glibc < 2.24:
src/frame-xchg.c: In function 'frame_watch_group_io_read':
src/frame-xchg.c:328:27: error: 'SOL_NETLINK' undeclared (first use in this function)
if (cmsg->cmsg_level != SOL_NETLINK)
^
This failure is due to glibc that doesn't support SOL_NETLINK before
version 2.24 and
https://github.com/bminor/glibc/commit/f9b437d5efce93800b51ad2a437c8b1c96...
Fixes:
- http://autobuild.buildroot.org/results/3485088b84111c271bbcfaf025aa4103c6...
Signed-off-by: Fabrice Fontaine <fontaine.fabrice(a)gmail.com>
---
src/frame-xchg.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/frame-xchg.c b/src/frame-xchg.c
index 50351615..4c950fd3 100644
--- a/src/frame-xchg.c
+++ b/src/frame-xchg.c
@@ -42,6 +42,10 @@
#include "src/netdev.h"
#include "src/frame-xchg.h"
+#ifndef SOL_NETLINK
+#define SOL_NETLINK 270
+#endif
+
struct watch_group {
/*
* Group IDs, except 0, are per wdev for user's convenience.
--
2.25.1
2 years, 2 months
iwd and ead for embedded device
by ryan.smith@density.io
I am looking to integrate iwd and ead into an embedded device to manage wireless and wired connections. We need to be able to support wired 802.1x connections, as well as wireless and simple wired connections. What is the recommended way to manage the connections? We are currently using connman via wpa_supplicant for wireless and connman for wired connections. This setup doesn't seem to work well for wired 802.1x, though. Any help/guidance you can give is appreciated.
Thanks,
Ryan Smith
2 years, 2 months
Dancing iwd connection
by Mauro Condarelli
Hi,
I am using iwd standalone and it works.
Problem is I see, every few seconds, what seems an attempt to reassociate:
[ 149.402346] wlan0: authenticate with a0:04:60:9f:2f:f8
[ 149.408961] wlan0: send auth to a0:04:60:9f:2f:f8 (try 1/3)
[ 149.425285] wlan0: authenticated
[ 149.430547] wlan0: associate with a0:04:60:9f:2f:f8 (try 1/3)
[ 149.442573] wlan0: RX AssocResp from a0:04:60:9f:2f:f8 (capab=0x411 status=0 aid=1)
[ 149.451181] wlan0: associated
[ 154.083051] wlan0: authenticate with a0:04:60:9f:2f:f8
[ 154.089863] wlan0: send auth to a0:04:60:9f:2f:f8 (try 1/3)
[ 154.102931] wlan0: authenticated
[ 154.110477] wlan0: associate with a0:04:60:9f:2f:f8 (try 1/3)
[ 154.120922] wlan0: RX AssocResp from a0:04:60:9f:2f:f8 (capab=0x411 status=0 aid=1)
[ 154.129485] wlan0: associated
[ 167.402736] wlan0: authenticate with a0:04:60:9f:2f:f8
[ 167.409354] wlan0: send auth to a0:04:60:9f:2f:f8 (try 1/3)
[ 167.423899] wlan0: authenticated
[ 167.427327] wlan0: associating with AP with corrupt probe response
[ 167.439400] wlan0: associate with a0:04:60:9f:2f:f8 (try 1/3)
[ 167.452192] wlan0: RX AssocResp from a0:04:60:9f:2f:f8 (capab=0x411 status=0 aid=1)
[ 167.463676] wlan0: associated
[ 171.402969] wlan0: authenticate with a0:04:60:9f:2f:f8
[ 171.409574] wlan0: send auth to a0:04:60:9f:2f:f8 (try 1/3)
[ 171.423368] wlan0: authenticated
[ 171.430927] wlan0: associate with a0:04:60:9f:2f:f8 (try 1/3)
[ 171.442946] wlan0: RX AssocResp from a0:04:60:9f:2f:f8 (capab=0x411 status=0 aid=1)
[ 171.451552] wlan0: associated
Can someone divine what's happening (and/or suggest what I should check)?
This is very annoying on console, *and* I can see connection disruption when reconnect happens.
Most likely this is some misconfig on my side, but I don't know how to tackle it.
Any comment welcome.
Thanks in Advance
Mauro
2 years, 2 months
[PATCH 1/2] device: Fix init return type
by Tim Kourt
---
src/device.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/device.c b/src/device.c
index c24d7ed1..171a11b6 100644
--- a/src/device.c
+++ b/src/device.c
@@ -420,7 +420,7 @@ static int device_init(void)
IWD_DEVICE_INTERFACE,
setup_device_interface,
destroy_device_interface, false))
- return false;
+ return -EPERM;
netdev_watch = netdev_watch_add(device_netdev_notify, NULL, NULL);
--
2.13.6
2 years, 2 months
[PATCH v3 1/3] auto-t: Use proper connection status indicator
by Tim Kourt
'Connected' property of the network object is set before the connection
attempt is made and does not indicate a connection success. Therefore,
use device status property to identify the connection status of the device.
---
autotests/testHotspot/autoconnect_test.py | 30 +++++++++++++-----------------
1 file changed, 13 insertions(+), 17 deletions(-)
diff --git a/autotests/testHotspot/autoconnect_test.py b/autotests/testHotspot/autoconnect_test.py
index 36ba92bf..936373f1 100644
--- a/autotests/testHotspot/autoconnect_test.py
+++ b/autotests/testHotspot/autoconnect_test.py
@@ -40,10 +40,8 @@ class Test(unittest.TestCase):
# while there are hotspot networks in range. This should result in
# autoconnect *after* ANQP is performed
#
- condition = 'obj.connected'
- wd.wait_for_object_condition(wpa_network.network_object, condition)
-
- sleep(2)
+ condition = 'obj.state == DeviceState.connected'
+ wd.wait_for_object_condition(device, condition)
testutil.test_iface_operstate()
testutil.test_ifaces_connected(device.name, hapd_wpa.ifname)
@@ -53,10 +51,10 @@ class Test(unittest.TestCase):
#
os.remove("/var/lib/iwd/ssidWPA2-1.psk")
- self.assertEqual(len(wd.list_known_networks()), 1)
+ condition = 'obj.state == DeviceState.disconnected'
+ wd.wait_for_object_condition(device, condition)
- condition = 'not obj.connected'
- wd.wait_for_object_condition(wpa_network.network_object, condition)
+ self.assertEqual(len(wd.list_known_networks()), 1)
condition = 'obj.scanning'
wd.wait_for_object_condition(device, condition)
@@ -71,10 +69,8 @@ class Test(unittest.TestCase):
# Since there are no other provisioned networks, we should do ANQP and
# autoconnect to the hotspot network.
#
- condition = 'obj.connected'
- wd.wait_for_object_condition(hotspot_network.network_object, condition)
-
- sleep(2)
+ condition = 'obj.state == DeviceState.connected'
+ wd.wait_for_object_condition(device, condition)
testutil.test_iface_operstate()
testutil.test_ifaces_connected(device.name, hapd_hotspot.ifname)
@@ -87,8 +83,8 @@ class Test(unittest.TestCase):
#
# make sure removal of hotspot conf file resulted in disconnect
#
- condition = 'not obj.connected'
- wd.wait_for_object_condition(wpa_network.network_object, condition)
+ condition = 'obj.state == DeviceState.disconnected'
+ wd.wait_for_object_condition(device, condition)
condition = 'obj.scanning'
wd.wait_for_object_condition(device, condition)
@@ -99,14 +95,14 @@ class Test(unittest.TestCase):
hotspot_network = device.get_ordered_network("ssidWPA2-1")
self.assertEqual(hotspot_network.type, NetworkType.psk)
- condition = 'obj.connected'
- wd.wait_for_object_condition(hotspot_network.network_object, condition)
-
- sleep(2)
+ condition = 'obj.state == DeviceState.connected'
+ wd.wait_for_object_condition(device, condition)
testutil.test_iface_operstate()
testutil.test_ifaces_connected(device.name, hapd_wpa.ifname)
+ device.disconnect()
+
@classmethod
def setUpClass(cls):
IWD.copy_to_hotspot('autoconnect.conf')
--
2.13.6
2 years, 2 months
[PATCH v2 1/3] auto-t: Use proper connection status indicator
by Tim Kourt
'Connected' property of the network object is set before the connection
attempt is made and does not indicate a connection success. Therefore,
use device status property to identify the connection status of the device.
---
autotests/testHotspot/autoconnect_test.py | 30 +++++++++++++-----------------
1 file changed, 13 insertions(+), 17 deletions(-)
diff --git a/autotests/testHotspot/autoconnect_test.py b/autotests/testHotspot/autoconnect_test.py
index 36ba92bf..936373f1 100644
--- a/autotests/testHotspot/autoconnect_test.py
+++ b/autotests/testHotspot/autoconnect_test.py
@@ -40,10 +40,8 @@ class Test(unittest.TestCase):
# while there are hotspot networks in range. This should result in
# autoconnect *after* ANQP is performed
#
- condition = 'obj.connected'
- wd.wait_for_object_condition(wpa_network.network_object, condition)
-
- sleep(2)
+ condition = 'obj.state == DeviceState.connected'
+ wd.wait_for_object_condition(device, condition)
testutil.test_iface_operstate()
testutil.test_ifaces_connected(device.name, hapd_wpa.ifname)
@@ -53,10 +51,10 @@ class Test(unittest.TestCase):
#
os.remove("/var/lib/iwd/ssidWPA2-1.psk")
- self.assertEqual(len(wd.list_known_networks()), 1)
+ condition = 'obj.state == DeviceState.disconnected'
+ wd.wait_for_object_condition(device, condition)
- condition = 'not obj.connected'
- wd.wait_for_object_condition(wpa_network.network_object, condition)
+ self.assertEqual(len(wd.list_known_networks()), 1)
condition = 'obj.scanning'
wd.wait_for_object_condition(device, condition)
@@ -71,10 +69,8 @@ class Test(unittest.TestCase):
# Since there are no other provisioned networks, we should do ANQP and
# autoconnect to the hotspot network.
#
- condition = 'obj.connected'
- wd.wait_for_object_condition(hotspot_network.network_object, condition)
-
- sleep(2)
+ condition = 'obj.state == DeviceState.connected'
+ wd.wait_for_object_condition(device, condition)
testutil.test_iface_operstate()
testutil.test_ifaces_connected(device.name, hapd_hotspot.ifname)
@@ -87,8 +83,8 @@ class Test(unittest.TestCase):
#
# make sure removal of hotspot conf file resulted in disconnect
#
- condition = 'not obj.connected'
- wd.wait_for_object_condition(wpa_network.network_object, condition)
+ condition = 'obj.state == DeviceState.disconnected'
+ wd.wait_for_object_condition(device, condition)
condition = 'obj.scanning'
wd.wait_for_object_condition(device, condition)
@@ -99,14 +95,14 @@ class Test(unittest.TestCase):
hotspot_network = device.get_ordered_network("ssidWPA2-1")
self.assertEqual(hotspot_network.type, NetworkType.psk)
- condition = 'obj.connected'
- wd.wait_for_object_condition(hotspot_network.network_object, condition)
-
- sleep(2)
+ condition = 'obj.state == DeviceState.connected'
+ wd.wait_for_object_condition(device, condition)
testutil.test_iface_operstate()
testutil.test_ifaces_connected(device.name, hapd_wpa.ifname)
+ device.disconnect()
+
@classmethod
def setUpClass(cls):
IWD.copy_to_hotspot('autoconnect.conf')
--
2.13.6
2 years, 2 months
[PATCH 1/3] auto-t: Use proper connection status indicator
by Tim Kourt
'Connected' property of the network object is set before the connection
attempt is made and does not indicate a connection success. Therefore,
use device status property to identify the connection status of the device.
---
autotests/testHotspot/autoconnect_test.py | 30 +++++++++++++-----------------
1 file changed, 13 insertions(+), 17 deletions(-)
diff --git a/autotests/testHotspot/autoconnect_test.py b/autotests/testHotspot/autoconnect_test.py
index 36ba92bf..936373f1 100644
--- a/autotests/testHotspot/autoconnect_test.py
+++ b/autotests/testHotspot/autoconnect_test.py
@@ -40,10 +40,8 @@ class Test(unittest.TestCase):
# while there are hotspot networks in range. This should result in
# autoconnect *after* ANQP is performed
#
- condition = 'obj.connected'
- wd.wait_for_object_condition(wpa_network.network_object, condition)
-
- sleep(2)
+ condition = 'obj.state == DeviceState.connected'
+ wd.wait_for_object_condition(device, condition)
testutil.test_iface_operstate()
testutil.test_ifaces_connected(device.name, hapd_wpa.ifname)
@@ -53,10 +51,10 @@ class Test(unittest.TestCase):
#
os.remove("/var/lib/iwd/ssidWPA2-1.psk")
- self.assertEqual(len(wd.list_known_networks()), 1)
+ condition = 'obj.state == DeviceState.disconnected'
+ wd.wait_for_object_condition(device, condition)
- condition = 'not obj.connected'
- wd.wait_for_object_condition(wpa_network.network_object, condition)
+ self.assertEqual(len(wd.list_known_networks()), 1)
condition = 'obj.scanning'
wd.wait_for_object_condition(device, condition)
@@ -71,10 +69,8 @@ class Test(unittest.TestCase):
# Since there are no other provisioned networks, we should do ANQP and
# autoconnect to the hotspot network.
#
- condition = 'obj.connected'
- wd.wait_for_object_condition(hotspot_network.network_object, condition)
-
- sleep(2)
+ condition = 'obj.state == DeviceState.connected'
+ wd.wait_for_object_condition(device, condition)
testutil.test_iface_operstate()
testutil.test_ifaces_connected(device.name, hapd_hotspot.ifname)
@@ -87,8 +83,8 @@ class Test(unittest.TestCase):
#
# make sure removal of hotspot conf file resulted in disconnect
#
- condition = 'not obj.connected'
- wd.wait_for_object_condition(wpa_network.network_object, condition)
+ condition = 'obj.state == DeviceState.disconnected'
+ wd.wait_for_object_condition(device, condition)
condition = 'obj.scanning'
wd.wait_for_object_condition(device, condition)
@@ -99,14 +95,14 @@ class Test(unittest.TestCase):
hotspot_network = device.get_ordered_network("ssidWPA2-1")
self.assertEqual(hotspot_network.type, NetworkType.psk)
- condition = 'obj.connected'
- wd.wait_for_object_condition(hotspot_network.network_object, condition)
-
- sleep(2)
+ condition = 'obj.state == DeviceState.connected'
+ wd.wait_for_object_condition(device, condition)
testutil.test_iface_operstate()
testutil.test_ifaces_connected(device.name, hapd_wpa.ifname)
+ device.disconnect()
+
@classmethod
def setUpClass(cls):
IWD.copy_to_hotspot('autoconnect.conf')
--
2.13.6
2 years, 2 months
[PATCH] frame-xchg.c: fix build with gcc 4.8
by Fabrice Fontaine
SOL_NETLINK is used since commit
87a198111af1ea67053895f7435fb99e3cdd2159 resulting in the following
build failure with gcc 4.8:
src/frame-xchg.c: In function 'frame_watch_group_io_read':
src/frame-xchg.c:328:27: error: 'SOL_NETLINK' undeclared (first use in this function)
if (cmsg->cmsg_level != SOL_NETLINK)
^
Fixes:
- http://autobuild.buildroot.org/results/3485088b84111c271bbcfaf025aa4103c6...
Signed-off-by: Fabrice Fontaine <fontaine.fabrice(a)gmail.com>
---
src/frame-xchg.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/frame-xchg.c b/src/frame-xchg.c
index 50351615..4c950fd3 100644
--- a/src/frame-xchg.c
+++ b/src/frame-xchg.c
@@ -42,6 +42,10 @@
#include "src/netdev.h"
#include "src/frame-xchg.h"
+#ifndef SOL_NETLINK
+#define SOL_NETLINK 270
+#endif
+
struct watch_group {
/*
* Group IDs, except 0, are per wdev for user's convenience.
--
2.25.1
2 years, 2 months
[PATCH] main: Fix freeing invalid pointer
by Tim Kourt
---
src/main.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/main.c b/src/main.c
index f8f3043d..8bcbb6a7 100644
--- a/src/main.c
+++ b/src/main.c
@@ -374,6 +374,7 @@ int main(int argc, char *argv[])
struct l_dbus *dbus;
const char *config_dir;
char **config_dirs;
+ int i;
for (;;) {
int opt;
@@ -456,9 +457,9 @@ int main(int argc, char *argv[])
config_dirs = l_strsplit(config_dir, ':');
- for (; *config_dirs; config_dirs++) {
+ for (i = 0; config_dirs[i]; i++) {
L_AUTO_FREE_VAR(char *, path) =
- l_strdup_printf("%s/%s", *config_dirs, "main.conf");
+ l_strdup_printf("%s/%s", config_dirs[i], "main.conf");
if (!l_settings_load_from_file(iwd_config, path))
continue;
--
2.13.6
2 years, 2 months
[PATCH 1/3] iwd: remove unnecessary semicolons
by Rosen Penev
Found with clang's -Wextra-semi-stmt
---
monitor/nlmon.c | 27 ++++++++++++++++-----------
src/crypto.c | 2 +-
src/eapol.c | 6 +++---
src/erp.c | 2 +-
src/fils.c | 3 ++-
src/ie.c | 10 ++++++----
src/main.c | 2 +-
src/sae.c | 4 ++--
src/station.c | 2 +-
src/wsc.c | 2 +-
10 files changed, 34 insertions(+), 26 deletions(-)
diff --git a/monitor/nlmon.c b/monitor/nlmon.c
index 1f269ff0..df628c2c 100644
--- a/monitor/nlmon.c
+++ b/monitor/nlmon.c
@@ -199,7 +199,7 @@ do { \
print_indent(4 + (level) * 4, COLOR_OFF, "", "", color, \
fmt, ## args)
-#define print_space(x) printf("%*c", (x), ' ');
+#define print_space(x) printf("%*c", (x), ' ')
static void print_packet(const struct timeval *tv, char ident,
const char *color, const char *label,
@@ -3042,10 +3042,13 @@ static void print_p2p_status(unsigned int level, const char *label,
}
#define CHECK_CAPS_BIT(v, str) \
- if (caps & (v)) { \
- print_attr(level + 1, "%s", (str)); \
- caps &= ~(v); \
- }
+ do { \
+ if (caps & (v)) { \
+ print_attr(level + 1, "%s", (str)); \
+ caps &= ~(v); \
+ } \
+ } while(0)
+
static void print_p2p_device_capability(unsigned int level, const char *label,
const void *data, uint16_t size)
{
@@ -3178,11 +3181,13 @@ static void print_p2p_manageability(unsigned int level, const char *label,
return;
}
-#define CHECK_BIT(v, str) \
- if (val & (v)) { \
- print_attr(level + 1, "%s", (str)); \
- val &= ~(v); \
- }
+#define CHECK_BIT(v, str) \
+ do { \
+ if (val & (v)) { \
+ print_attr(level + 1, "%s", (str)); \
+ val &= ~(v); \
+ } \
+ } while(0)
val = *(const uint8_t *) data;
@@ -5239,7 +5244,7 @@ static void print_eap(unsigned int level, const void *data, uint32_t size)
default:
str = "Reserved";
break;
- };
+ }
print_attr(level, "Code: %u (%s)", eap[0], str);
print_attr(level, "Identifier: %u", eap[1]);
diff --git a/src/crypto.c b/src/crypto.c
index c1fe83a2..696b5990 100644
--- a/src/crypto.c
+++ b/src/crypto.c
@@ -469,7 +469,7 @@ int crypto_cipher_key_len(enum crypto_cipher cipher)
return 16;
case CRYPTO_CIPHER_BIP:
return 16;
- };
+ }
return 0;
}
diff --git a/src/eapol.c b/src/eapol.c
index 2c4b3dcd..b0036c10 100644
--- a/src/eapol.c
+++ b/src/eapol.c
@@ -279,7 +279,7 @@ uint8_t *eapol_decrypt_key_data(enum ie_rsn_akm_suite akm, const uint8_t *kek,
break;
default:
return NULL;
- };
+ }
buf = l_new(uint8_t, expected_len);
@@ -1674,7 +1674,7 @@ static void eapol_handle_ptk_3_of_4(struct eapol_sm *sm,
return;
}
- igtk_key_index = l_get_le16(igtk);;
+ igtk_key_index = l_get_le16(igtk);
igtk += 2;
igtk_len -= 2;
} else
@@ -1834,7 +1834,7 @@ static void eapol_handle_gtk_1_of_2(struct eapol_sm *sm,
if (!igtk)
return;
- igtk_key_index = l_get_le16(igtk);;
+ igtk_key_index = l_get_le16(igtk);
igtk += 2;
igtk_len -= 2;
} else
diff --git a/src/erp.c b/src/erp.c
index cacd37d1..8c6f971c 100644
--- a/src/erp.c
+++ b/src/erp.c
@@ -308,7 +308,7 @@ static bool erp_derive_reauth_keys(const uint8_t *emsk, size_t emsk_len,
void *r_rk, void *r_ik)
{
char info[256];
- char *ptr;;
+ char *ptr;
ptr = info + l_strlcpy(info, ERP_RRK_LABEL, sizeof(info)) + 1;
diff --git a/src/fils.c b/src/fils.c
index 4291e792..2d2a0913 100644
--- a/src/fils.c
+++ b/src/fils.c
@@ -1,3 +1,4 @@
+
/*
*
* Wireless daemon for Linux
@@ -508,7 +509,7 @@ static int fils_rx_associate(struct auth_proto *driver, const uint8_t *frame,
if (!igtk)
goto invalid_ies;
- igtk_key_index = l_get_le16(igtk);;
+ igtk_key_index = l_get_le16(igtk);
igtk += 2;
igtk_len -= 2;
diff --git a/src/ie.c b/src/ie.c
index 8d212ea0..4b2e3780 100644
--- a/src/ie.c
+++ b/src/ie.c
@@ -915,10 +915,12 @@ static bool ie_build_cipher_suite(uint8_t *data, const uint8_t *oui,
return false;
}
-#define RETURN_AKM(data, oui, id) \
- memcpy((data), (oui), 3); \
- (data)[3] = (id); \
- return true;
+#define RETURN_AKM(data, oui, id) \
+ do { \
+ memcpy((data), (oui), 3); \
+ (data)[3] = (id); \
+ return true; \
+ } while(0)
/* 802.11-2016, Section 9.4.2.25.3 */
static bool ie_build_rsn_akm_suite(uint8_t *data, enum ie_rsn_akm_suite suite)
diff --git a/src/main.c b/src/main.c
index 831fb315..f8f3043d 100644
--- a/src/main.c
+++ b/src/main.c
@@ -339,7 +339,7 @@ static int check_crypto()
l_hashmap_insert(options, "CONFIG_PKCS7_MESSAGE_PARSER", &r);
l_hashmap_insert(options,
"CONFIG_PKCS8_PRIVATE_KEY_PARSER", &r);
- };
+ }
if (l_hashmap_isempty(options))
goto done;
diff --git a/src/sae.c b/src/sae.c
index 6abbad5e..97e3348e 100644
--- a/src/sae.c
+++ b/src/sae.c
@@ -144,9 +144,9 @@ static bool sae_cn(const uint8_t *kck, uint16_t send_confirm,
iov[2].iov_base = (void *) e1;
iov[2].iov_len = l_ecc_point_get_data(element1, e1, sizeof(e1));
iov[3].iov_base = (void *) s2;
- iov[3].iov_len = l_ecc_scalar_get_data(scalar2, s2, sizeof(s2));;
+ iov[3].iov_len = l_ecc_scalar_get_data(scalar2, s2, sizeof(s2));
iov[4].iov_base = (void *) e2;
- iov[4].iov_len = l_ecc_point_get_data(element2, e2, sizeof(e2));;
+ iov[4].iov_len = l_ecc_point_get_data(element2, e2, sizeof(e2));
l_checksum_updatev(hmac, iov, 5);
diff --git a/src/station.c b/src/station.c
index ca47568c..d57a0f8d 100644
--- a/src/station.c
+++ b/src/station.c
@@ -2174,7 +2174,7 @@ static void station_netdev_event(struct netdev *netdev, enum netdev_event event,
case NETDEV_EVENT_RSSI_LEVEL_NOTIFY:
station_rssi_level_changed(station, l_get_u8(event_data));
break;
- };
+ }
}
static bool station_try_next_bss(struct station *station)
diff --git a/src/wsc.c b/src/wsc.c
index ba58b6d4..2ac6de9c 100644
--- a/src/wsc.c
+++ b/src/wsc.c
@@ -262,7 +262,7 @@ static void wsc_enrollee_netdev_event(struct netdev *netdev,
default:
l_debug("Unexpected event: %d", event);
break;
- };
+ }
}
static void wsc_enrollee_handshake_event(struct handshake_state *hs,
--
2.25.1
2 years, 2 months