Andrew Zaborowski
28fc8e613d
device: Add a Scanning property
...
The boolean property indicates if a scan is ongoing. Only the scans
triggered by device.c are reflected (not the ones from WSC) because only
those scans affect the list of networks seen by Dbus.
2016-07-13 10:32:10 -05:00
Andrew Zaborowski
eac4b2fd0f
device: Make Powered property writable
2016-07-13 10:31:31 -05:00
Andrew Zaborowski
6f51950f46
netdev: Add netdev_set_powered
2016-07-13 10:27:41 -05:00
Andrew Zaborowski
377df7662c
Add rfkill enable/disable and watch support
...
Add rfkill.c/rfkill.h to be used for watching per-wiphy RFkill state.
It uses both /dev/rfkill and /sys because /dev/rfkill is the recommended
way of interfacing with rfkill but at the same time it doesn't provide
the information on mapping to wiphy IDs.
2016-07-07 13:21:08 -05:00
Andrew Zaborowski
0095b1d9e4
device: PropertyChanged events when interface goes down
2016-07-07 12:37:25 -05:00
Andrew Zaborowski
fe6485147c
network: Disconnect from known network in Forget()
...
Note that the autoconnect_list may still contain the network. Currently
only the top entry from the list is ever used and only on
new_scan_results(), i.e. at the same time the list is being created.
If at some point it becomes part of actual device state it needs to also
be reset when a network is being forgotten.
2016-07-07 12:26:16 -05:00
Andrew Zaborowski
a2771d22f4
device: Add public device_disconnect function
2016-07-07 12:26:16 -05:00
Andrew Zaborowski
f468fceb02
device: Handle disconnect calls while connecting
...
If Disconnect is called during an ongoing connection attempt send a
CMD_DEAUTHENTICATE command same as when we're already connected, and
send a reply to potential dbus Connect call.
2016-07-07 12:26:16 -05:00
Andrew Zaborowski
9c99166e7a
netdev: Fix command length passed to l_netlink_send
...
Quiet the following dmesg warning:
netlink: 16 bytes leftover after parsing attributes in process `iwd'.
2016-07-06 10:38:55 -05:00
Denis Kenzior
e421af2a58
netdev: React to removed netdevs
2016-07-01 14:49:34 -05:00
Denis Kenzior
0cffac45d4
wiphy: Notify netdev when a new wiphy has been added
2016-07-01 14:42:18 -05:00
Denis Kenzior
005213a3d4
netdev: Implement new_wiphy hint
...
When a new wiphy is added, the kernel usually adds a default STA
interface as well. This interface is currently not signaled over
nl80211 in any way.
This implements a selective dump of the wiphy interfaces in order to
obtain the newly added netdev. Selective dump is currently not
supported by the kernel, so all netdevs will be returned. A patch on
linux-wireless is pending that implements the selective dump
functionality.
2016-07-01 14:39:25 -05:00
Denis Kenzior
943acddb49
eapol: Refactor eapol tx path
2016-06-28 18:45:49 -05:00
Denis Kenzior
de84aff10b
netdev: Cleanup EAPoL state machine
...
In case of disconnection by AP or lost beacon, cancel EAPoL state
machine
2016-06-28 18:28:39 -05:00
Denis Kenzior
45dabb9e44
netdev: Call eapol_cancel if operstate fails
2016-06-28 18:24:53 -05:00
Denis Kenzior
830af391e2
netdev: Fix memory leak
...
==24934== 16 bytes in 1 blocks are definitely lost in loss record 1 of 1
==24934== at 0x4C2C970: malloc (vg_replace_malloc.c:296)
==24934== by 0x41675D: l_malloc (util.c:62)
==24934== by 0x4033B3: netdev_set_linkmode_and_operstate
(netdev.c:149)
==24934== by 0x4042B9: netdev_free (netdev.c:221)
==24934== by 0x41735D: l_queue_clear (queue.c:107)
==24934== by 0x4173A8: l_queue_destroy (queue.c:82)
==24934== by 0x40543D: netdev_exit (netdev.c:1459)
==24934== by 0x402D6F: nl80211_vanished (main.c:126)
==24934== by 0x41E607: l_genl_family_unref (genl.c:1057)
==24934== by 0x402B50: main (main.c:237)
2016-06-28 18:18:50 -05:00
Denis Kenzior
efe5bed7c5
netdev: Move eapol_read to eapol.c
2016-06-28 18:18:47 -05:00
Denis Kenzior
746b0e5cb1
netdev: Free sm if connect fails
2016-06-28 17:26:03 -05:00
Denis Kenzior
b6d651dda8
eapol: Move eapol_start
2016-06-28 17:26:03 -05:00
Denis Kenzior
e059ee01a7
eapol: Move eapol_cancel
2016-06-28 17:26:03 -05:00
Andrew Zaborowski
6819cb8907
scan: Add a trigger callback to scan_periodic_start
2016-06-27 20:27:12 -05:00
Andrew Zaborowski
4ac1cd0ac0
device: Device watch notifications on interface up/down
...
Instead of calling the device added or removed callback when the
interface is detected, call it when interface goes up or down. This
only affects the addition and removal of the WSC interface now.
2016-06-27 20:20:14 -05:00
Andrew Zaborowski
a0b4b4cb2e
device: Fix Powered property getter
2016-06-27 20:18:49 -05:00
Denis Kenzior
5c6024185d
netdev: Use CMD_CONNECT
2016-06-27 18:55:56 -05:00
Denis Kenzior
e81af82313
wiphy: React to new_wiphy events
2016-06-24 23:32:15 -05:00
Denis Kenzior
3bd0c9ae13
wiphy: React to del_wiphy events
2016-06-24 23:31:58 -05:00
Denis Kenzior
1500756144
wiphy: Print wiphy id
2016-06-24 23:31:02 -05:00
Denis Kenzior
ed18ab4fc0
wiphy: Rework wiphy dump parser
2016-06-24 23:30:05 -05:00
Denis Kenzior
0d9ec3b5ed
wiphy: Rework printing basic wiphy info
2016-06-24 23:30:05 -05:00
Denis Kenzior
49abd4556f
netdev: Remove device when netdev is freed
2016-06-24 23:17:06 -05:00
Denis Kenzior
105f5f8d8e
netdev: Rearrange netdev structure
...
Keep flags co-located
2016-06-24 23:17:06 -05:00
Andrew Zaborowski
c508d9e4df
device: Make sure connected network is not freed
...
During the network_info refactoring the adding of the connected BSS to
device->bss_list in case it is not in the scan results has moved to
after the l_hashmap_foreach_remove call meaning that the network could
be removed even though it is still pointed at by
device->connected networks. Reverse the order to what it was before.
Alternatively network_process network could take not of the fact the
network is connected and not call network_remove on it leaving it with
an empty bss_list.
2016-06-24 14:57:43 -05:00
Andrew Zaborowski
8f0d68139e
device: Reset connected_network when disconnect operation starts
...
It is probably rare that a disconnect should fail but if it happens the
device->state is not returned to CONNECTED and I'm not sure if it should
be, so the ConnectedNetwork property and other bits should probably be
reset at the start of the disconnection instead of at the end.
Also check if state is CONNECTED before calling network_disconnected
because network_connected may have not been called yet.
2016-06-24 14:56:26 -05:00
Denis Kenzior
e76daf224c
netdev: Implement interface filtering
2016-06-23 17:34:47 -05:00
Denis Kenzior
0eee94a264
netdev: Fix some uninitialized warnings
2016-06-23 17:34:11 -05:00
Denis Kenzior
04de3af41f
main: Add command line options for white/black list
...
--interfaces (-i) tells iwd which interfaces to manage. If the option
is ommitted, all interfaces will be managed.
--nointerfaces (-I) tells iwd which interfaces to blacklist. If the
option is ommitted, no interfaces will be blacklisted.
2016-06-23 15:49:05 -05:00
Denis Kenzior
cda2026b23
netdev: Actually set rekey_offload into eapol
2016-06-22 19:18:38 -05:00
Rahul Rahul
5853440dfa
netdev: support for REKEY_OFFLOAD and its event handling
2016-06-22 18:44:46 -05:00
Rahul Rahul
fb339bcc76
eapol: helper functions for REKEY_OFFLOAD
2016-06-22 18:44:17 -05:00
Denis Kenzior
dc721a6ae2
netdev: Set callbacks for operstate
...
When setting operstate to dormant or down, give it a callback for debug
purposes. It looks like that operstate down message does not have a
chance to go out currently.
2016-06-21 15:18:50 -05:00
Andrew Zaborowski
844c0a256c
device: Add a read-only Powered property
2016-06-21 14:08:27 -05:00
Andrew Zaborowski
6667176ec9
device: React to netdev state changes
2016-06-21 14:08:24 -05:00
Andrew Zaborowski
b6c22fc1b9
netdev: netdev watch support
2016-06-21 14:08:21 -05:00
Andrew Zaborowski
aa7a6a4619
netdev: Track interface UP flag
2016-06-21 14:08:19 -05:00
Andrew Zaborowski
c3f863f2da
knownnetworks: Implement KnownNetworks interface
...
knownnetworks.c/.h implements the KnownNetworks interface and loads the
known networks from storage on startup. The list of all the networks
including information on whether a network is known is managed in
network.c to avoid having two separate lists of network_info structures
and keeping them in sync. That turns out to be difficult because the
network.c list is sorted by connected_time and connected_time changes
can be triggered in both network.c or knownnetworks.c. Both can also
trigger a network_info to be removed completely.
2016-06-21 11:41:37 -05:00
Andrew Zaborowski
694c91db44
network: track whether network is known
...
network_info gets a is_known flag that is used for the
GetOrderedNetworks tracking and to implement the KnownNetworks
interface - loading of the list of known networks on startup and
forgetting networks.
2016-06-21 11:36:31 -05:00
Andrew Zaborowski
9daf1f3fcf
network: Refactor network_info usage
...
For simplicity and future use (possibly performance), every struct network
gets a pointer to a network_info structure, there's one network_info for
every network being by any interface, not only known networks. The SSID
and security type information is removed from struct network because the
network_info holds that information.
network_info also gets a seen_count field to count how many references
from network.info fields it has, so as to fix the removal of
network_info structures. Previously, once they were added to the
networks list, they'd stay there forever possibly skewing the network
ranking results.
This also fixed the network ranking used by GetOrderedNetwork which
wasn't working due to a missing assignment of *index in
network_find_info also triggering valgrind alerts.
2016-06-20 23:39:42 -05:00
Denis Kenzior
311a6cf5b1
device: Make device object opaque
2016-06-16 16:37:14 -05:00
Denis Kenzior
74add19057
device: Move the rest of device specific code
...
.. out of wiphy.c
2016-06-16 16:37:14 -05:00
Denis Kenzior
0fe815f870
netdev: Move deauthenticate handling out of wiphy.c
2016-06-16 16:37:14 -05:00
Denis Kenzior
48c0a216d7
wiphy: Rearrange / remove #includes
2016-06-16 16:37:14 -05:00
Denis Kenzior
c28e652570
device: Move device_list management out of wiphy.c
2016-06-16 16:37:14 -05:00
Denis Kenzior
49c7515ac1
netdev: Move eapol_io handling
2016-06-16 16:37:12 -05:00
Denis Kenzior
75ce550de9
netdev: Move operstate operations out of wiphy.c
...
Also make netdev_set_linkmode_and_operstate static
2016-06-16 15:13:43 -05:00
Denis Kenzior
dd4b0dc3d3
netdev: Move key setting logic out of wiphy.c
2016-06-16 15:13:43 -05:00
Denis Kenzior
c714b20102
wiphy: Move handshake_failed handler out of wiphy.c
2016-06-16 15:13:43 -05:00
Denis Kenzior
64d382cc89
netdev: Move disconnect event handling
...
.. out of wiphy.c
2016-06-16 15:13:43 -05:00
Denis Kenzior
0eeb71e4eb
netdev: Move CQM event handling out of wiphy.c
2016-06-16 15:13:43 -05:00
Denis Kenzior
d526dbc175
netdev: Move associate event handling
...
.. out of wiphy.c
2016-06-16 15:13:39 -05:00
Denis Kenzior
1ab6415e8c
device: Handle successful connections
2016-06-16 10:53:26 -05:00
Denis Kenzior
d82754636b
netdev: Move deauthenticate event handling
...
.. out of wiphy.c
2016-06-15 14:02:24 -05:00
Denis Kenzior
f5a7e204e7
device: Fix valgrind warning
...
Device removal should probably be managed by netdev objects going away,
but for now, silence the warning
2016-06-15 11:01:44 -05:00
Denis Kenzior
31a0e42772
wiphy: Move association logic out of wiphy.c
...
The eapol state machine parameters are now built inside device.c when
the network connection is attempted. The reason is that the device
object knows about network settings, wiphy constraints and should
contain the main 'management' logic.
netdev now manages the actual low-level process of building association
messages, detecting authentication events, etc.
2016-06-15 10:54:13 -05:00
Denis Kenzior
b93ae37325
eapol: Add eapol_sm_get_own_ie
2016-06-14 19:57:21 -05:00
Denis Kenzior
6d81e0a172
eapol: Add eapol_sm_get_group_cipher
2016-06-14 19:57:21 -05:00
Denis Kenzior
c1ff686ed6
eapol: Add eapol_sm_get_pairwise_cipher
2016-06-14 19:57:21 -05:00
Denis Kenzior
d297fbb215
netdev: Add stubs for netdev_disconnect
2016-06-14 19:57:21 -05:00
Denis Kenzior
b2d8616ca4
device: Move device_get_address out of wiphy.c
2016-06-14 19:57:21 -05:00
Denis Kenzior
c18cf173c3
device: Move device_get_ifindex out of wiphy.c
2016-06-14 19:57:21 -05:00
Denis Kenzior
74c8af9180
device: Move device_get_wiphy out of wiphy.c
2016-06-14 19:57:21 -05:00
Denis Kenzior
e23ea59f95
device: Move device_is_busy out of wiphy.c
2016-06-14 19:57:21 -05:00
Denis Kenzior
6e57e4a00c
device: Move device_get_path out of wiphy.c
2016-06-14 19:57:21 -05:00
Denis Kenzior
e0c27a2ca8
device: Move device_get_connected_network
...
out of wiphy.c
2016-06-14 19:57:21 -05:00
Denis Kenzior
aedbdd01ae
device: Migrate authentication to netdev api
...
This also moves device_connect_network to device.c where it belongs
2016-06-14 19:57:21 -05:00
Denis Kenzior
51f89e34e9
netdev: Add initial netdev_connect logic
2016-06-14 19:57:18 -05:00
Denis Kenzior
6bd71066ff
device: Move device_disassociated out of wiphy.c
2016-06-14 11:16:07 -05:00
Denis Kenzior
64604ed59c
device: Expose device_enter_state
2016-06-14 11:13:34 -05:00
Denis Kenzior
1e99fc182e
device: Group declarations inside header
2016-06-14 11:12:35 -05:00
Denis Kenzior
9d4baab8bd
device: Move device structure definition
...
Temporarily move device structure definition into device.h and out of
wiphy.c. Eventually the device structure should be opaque to device.c
2016-06-14 11:11:06 -05:00
Denis Kenzior
432ec3e69f
storage: Return const char *
2016-06-10 09:59:59 -05:00
Andrew Zaborowski
9cef1490c5
network: Basic last seen time tracking
2016-06-10 09:33:54 -05:00
Andrew Zaborowski
a0468fb9be
device: Implement GetOrderedNetworks()
...
Keep an updated sorted list of networks in addition to the "networks"
hashmap. The list can be queried through the GetOrderedNetworks dbus
method.
We also take advantage of that list to get rid of a single
l_hashmap_foreach in new_scan_results.
2016-06-10 09:33:13 -05:00
Andrew Zaborowski
ca3cd12fb0
network: General network rank calculation
...
A function that calculates a new rank type to order all networks
currently seen by a netdev. The order is designed for displaying the
list to user so that the networks most likely to be wanted by the user
are first on the list.
2016-06-10 09:29:43 -05:00
Andrew Zaborowski
99f99e0bc0
agent: Add reason parameter to Cancel
...
Add a parameter the UI can use to show user an explanation of why a
password prompt is disappearing.
2016-06-10 09:26:56 -05:00
Andrew Zaborowski
b6c9508912
storage: Add storage_network_ssid_from_path
...
The operation opposite to get_network_file_path.
2016-06-09 15:01:32 -05:00
Andrew Zaborowski
11f23d500c
network: Add network_get_signal_strength
2016-06-09 14:40:18 -05:00
Andrew Zaborowski
dae897854b
network: return boolean from network_rankmod
...
Since the rankmod value only makes sense for autoconnectable networks,
change network_rankmod to return an indication of whether the rankmod is
valid as a boolean instead of as a double, as discussed before.
2016-06-09 14:16:06 -05:00
Andrew Zaborowski
e07b24e5d8
wiphy: Move NULL check to device_disassociated
...
Do nothing in device_disassociated if device->connected_network
indicates we are not associated. This may happen if the device was
connected since before iwd was started, this should possibly be fixed
separately by querying device state when device is detected.
2016-06-09 14:14:20 -05:00
Andrew Zaborowski
3fa9a21a39
network: Add network_disconnected
...
Let network handle anything that needs to be done on a disconnection,
this way keep the settings opening and closing logic in network.c.
2016-06-09 14:13:58 -05:00
Denis Kenzior
454f7d7867
iwd: Update to the new l_main api
2016-06-09 09:56:40 -05:00
Andrew Zaborowski
ab15413294
storage: Add storage_network_remove
2016-06-08 11:33:57 -05:00
Andrew Zaborowski
8be78588e2
common: Add security_from_str
...
The reverse operation of security_to_str.
2016-06-08 11:08:10 -05:00
Andrew Zaborowski
0cb233cdde
agent: Drop unused declaration
2016-06-08 11:06:28 -05:00
Andrew Zaborowski
2285ad24ab
network: Create a settings file on connection
...
Make sure networks of all 4 security types have a settings file created
or updated with a new modification time on a successful connect so that
autoconnect and network sorting works for networks other than PSK too.
By doing this on storage_network_touch failure we make sure we don't
overwrite anything dropped into the settings directory while we were
connecting.
2016-06-08 11:03:53 -05:00
Andrew Zaborowski
33d2ae60e9
network: Use security_to_str instead of switch(security)
...
Convert switch (network->security) statements to security_to_str to be
consistent across network.c in how the settings file name ending is
obtained.
2016-06-08 11:01:35 -05:00
Denis Kenzior
b2bcf97373
scan: Remove unused scan_bss_address_to_string
2016-06-06 18:25:12 -05:00
Denis Kenzior
c96d43a6da
wiphy: Use util_address_to_string
2016-06-06 18:25:00 -05:00
Denis Kenzior
22e1c2f592
wsc: Use util_address_to_string
2016-06-06 18:24:49 -05:00
Denis Kenzior
64c388fe76
wiphy: Fix crash in device address property getter
...
Address is being returned as a string, even though it is actually an
array of 6 uint8_t elements
2016-06-06 18:23:53 -05:00
Denis Kenzior
92c943998f
util: Add util_address_to_string
2016-06-06 18:23:17 -05:00
Denis Kenzior
dcfbc74326
wiphy: Remove addr from device struct
2016-06-06 12:05:24 -05:00
Denis Kenzior
cedb980f92
wiphy: Remove name from device struct
2016-06-06 12:05:20 -05:00
Denis Kenzior
d6c6e4acda
netdev: Move netdev enumeration to netdev.c
2016-06-06 12:03:23 -05:00
Denis Kenzior
833ed20b9a
netdev: Add netdev_get_name
2016-06-03 09:53:47 -05:00
Denis Kenzior
1573bf7d99
netdev: Add netdev_get_iftype
2016-06-03 09:53:47 -05:00
Denis Kenzior
1bd7baf44b
netdev: Add netdev_find
2016-06-03 09:53:46 -05:00
Denis Kenzior
8e7829e1ab
netdev: Add netdev_get_address
2016-06-03 09:53:46 -05:00
Denis Kenzior
7a3f823d26
netdev: Add netdev_get_ifindex
2016-06-03 09:53:46 -05:00
Denis Kenzior
7c359ee2c2
netdev: Add netdev struct definition
2016-06-03 09:53:46 -05:00
Denis Kenzior
8113f4c64e
wiphy: Add wiphy_find
2016-06-03 09:53:46 -05:00
Denis Kenzior
61b50cf81f
netdev: Parse NEW_INTERFACE and DEL_INTERFACE
2016-06-03 09:53:46 -05:00
Denis Kenzior
e5821f6ade
netdev: Remove unneeded comment
2016-06-03 09:53:46 -05:00
Denis Kenzior
280f2d40ad
netdev: Make netdev_init accept nl80211
2016-06-03 09:53:46 -05:00
Denis Kenzior
7b929181ca
wiphy: Remove unused wiphy_notify_dellink
2016-06-01 13:07:04 -05:00
Denis Kenzior
3563c65111
netdev: Don't track NEWLINK & DELLINK
...
The plan is to use the much more reliable NEW_WIPHY, DEL_WIPHY,
NEW_INTERFACE, DEL_INTERFACE events.
2016-06-01 13:07:04 -05:00
Denis Kenzior
0b0fd5639f
wiphy: Parse NEW_WIPHY and DEL_WIPHY events
2016-06-01 13:07:04 -05:00
Denis Kenzior
e48ca5a5a6
wiphy: Rename netdev to device
2016-06-01 13:06:59 -05:00
Denis Kenzior
af9ca22360
wiphy: Remove extraneous return
2016-05-31 11:29:48 -05:00
Andrew Zaborowski
1ba2630216
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.
2016-05-30 21:46:45 -05:00
Andrew Zaborowski
9fbdba0957
network: Add "const" to the getter argument types
2016-05-30 21:46:08 -05:00
Andrew Zaborowski
2e4848673a
network: Check for duplicates in network_seen
...
It looks like with multiple netdev seeing the same networks we'd create
multiple network_info structures for each network. Since the
"networks" list (of network_info structs) is global that's probbaly not
the intention here.
2016-05-30 21:45:52 -05:00
Andrew Zaborowski
2901cb1169
main: Restore agent_exit call before main loop exit
2016-05-25 09:57:58 -05:00
Andrew Zaborowski
176a5bcf76
storage: Encode SSIDs in file names if necessary
...
SSIDs with characters other than A-Z0-9_- and space are encoded with
l_util_hexstring and prefixed with a = sign to differentiate them.
2016-05-24 11:14:33 -05:00
Rahul Rahul
fc7ca17558
wiphy: added hw address property to device
2016-05-23 14:54:27 -05:00
Andrew Zaborowski
7950e2d5d3
wiphy: Emit PropertyChanged signals
...
for Device and Network
2016-05-23 11:55:06 -05:00
Andrew Zaborowski
ab1319a9d5
wiphy: Drop Device.GetNetworks and related signals
...
Drop the Device interface methods and properties made redundant by
the ObjectManager.
2016-05-23 11:48:41 -05:00
Andrew Zaborowski
15bab067fc
dbus: Remove Manager interface, add AgentManager
...
Move the Agent-related methods to a new interface, AgentManager, and
drop the remaining methods and signals made redundant by the
ObjectManager.
2016-05-23 11:46:59 -05:00
Andrew Zaborowski
3e2562a5a8
dbus: Enable the ObjectManager interface
2016-05-23 11:43:13 -05:00
Denis Kenzior
74689303df
network: Make network object opaque
2016-05-16 16:14:26 -05:00
Denis Kenzior
0e106d8534
wiphy: Use network_bss_* api
2016-05-16 16:14:15 -05:00
Denis Kenzior
44d9746e5f
network: Add network_bss_list_clear
2016-05-16 16:13:52 -05:00
Denis Kenzior
b4cebf918a
network: Add network_bss_list_isempty
2016-05-16 16:13:36 -05:00
Denis Kenzior
f177f75f92
network: Add network_bss_add
2016-05-16 16:06:41 -05:00
Denis Kenzior
cefba4d735
wiphy: Use network_connect_failed
2016-05-16 16:03:17 -05:00
Denis Kenzior
ad722cf004
network: Add network_connect_failed
2016-05-16 16:03:14 -05:00
Denis Kenzior
dcadf4d2f8
wiphy: Use network_autoconnect
2016-05-16 16:00:21 -05:00
Denis Kenzior
8e8b2caa9a
network: Add network_autoconnect
2016-05-16 16:00:10 -05:00
Denis Kenzior
c619a71652
wiphy: Use network accessor methods
2016-05-16 15:44:27 -05:00
Denis Kenzior
b79453952c
network: Add network_get_settings
2016-05-16 14:37:45 -05:00
Denis Kenzior
93c8a4f090
network: Add network_get_psk
2016-05-16 14:22:24 -05:00
Denis Kenzior
9bfa0aa768
merge: device_connect_network
2016-05-16 13:48:10 -05:00
Denis Kenzior
d4feeebdc1
network: Move network related code into network.c
...
away from wiphy.c
2016-05-16 12:37:48 -05:00
Denis Kenzior
5e4c675175
network: Use device_get_wiphy
2016-05-16 12:32:44 -05:00
Denis Kenzior
66610f1248
device: Add device_get_wiphy()
2016-05-16 12:26:00 -05:00
Denis Kenzior
68a79b23fb
device: Add device_is_busy()
2016-05-16 12:24:41 -05:00
Denis Kenzior
a9e9be469c
wiphy: Expose wiphy_select_cipher
2016-05-16 12:21:26 -05:00
Denis Kenzior
bcb2ef3e40
network: Rework connect logic
2016-05-16 12:05:28 -05:00
Denis Kenzior
2fe80a8f86
device: Add device_connect_network
2016-05-16 12:04:45 -05:00
Denis Kenzior
80aba66e98
network: Make network_emit_* static
2016-05-15 21:42:14 -05:00
Denis Kenzior
a789703f6f
wiphy: Use network_create, register & remove
2016-05-15 21:41:37 -05:00
Denis Kenzior
18957e504e
network: Add network_remove
2016-05-15 21:37:12 -05:00
Denis Kenzior
d0ae833edb
network: Add network_register
2016-05-15 21:30:52 -05:00
Denis Kenzior
d1948c0233
network: Add network_new
2016-05-15 21:29:47 -05:00
Denis Kenzior
54e7cced8e
network: Move PSK sync to network.c
2016-05-15 21:04:02 -05:00
Denis Kenzior
24366efb32
wiphy: Use network_settings_load & _close
2016-05-15 21:01:46 -05:00
Denis Kenzior
2e46201a1e
network: Add network_settings_load and _close
2016-05-15 21:01:38 -05:00
Denis Kenzior
49df40fdff
network: Move network_emit_removed to network.c
2016-05-12 09:52:52 -05:00
Denis Kenzior
5dc3a892db
network: Move network_emit_added to network.c
2016-05-12 09:51:02 -05:00
Denis Kenzior
3ca8dfb5ad
wiphy: move & rename iwd_device_get_path
...
Move declaration to device.h and rename to device_get_path
2016-05-12 09:49:07 -05:00
Denis Kenzior
ae1dc10c0c
wiphy: Move __iwd_network_append_properties
...
to network.c
2016-05-11 22:32:25 -05:00
Denis Kenzior
23fe106cc5
device: Add device_get_connected_network()
2016-05-11 22:27:31 -05:00
Denis Kenzior
08d72cd213
netdev: Remove unused typedefs
2016-05-11 22:24:40 -05:00
Denis Kenzior
0c7504b5fb
wiphy: Use network_get_security()
2016-05-11 22:12:25 -05:00
Denis Kenzior
b166285f44
network: Add network_get_security()
2016-05-11 22:12:25 -05:00
Denis Kenzior
f3ad1492c9
wiphy: Use network_get_path()
2016-05-11 22:12:25 -05:00
Denis Kenzior
beea6897d3
network: Add network_get_path()
2016-05-11 22:12:23 -05:00
Denis Kenzior
2ccbf65519
wiphy: Use network_get_netdev
2016-05-11 22:04:09 -05:00
Denis Kenzior
54574dc153
network: Add network_get_netdev
2016-05-11 22:02:49 -05:00
Denis Kenzior
0847e31542
wiphy: Use network_get_ssid
2016-05-11 22:01:44 -05:00
Denis Kenzior
9e4200f2f3
network: Add network_get_ssid
2016-05-11 22:00:58 -05:00
Denis Kenzior
414bc3198d
wiphy: Move network object definition
2016-05-11 21:59:32 -05:00
Denis Kenzior
17a8460835
scan: Move scan_ssid_security to iwd.h
...
Security type is used all over the place, so move it out to a more
common place.
2016-05-11 15:54:14 -05:00
Denis Kenzior
aa7f88a78c
agent: Fix bug in UnregisterAgent
2016-05-06 12:39:35 -05:00
Denis Kenzior
c2c4039e79
wiphy: Rename netdev_state to device_state
2016-05-05 12:25:45 -05:00
Denis Kenzior
f3fc0ea1f9
device: Refactor netdev watches
...
Turn netdev watches into device watches. The intent is to refactor out
netdev specific details into its own class and move device specific
logic into device.c away from wiphy.c
2016-05-05 12:14:59 -05:00
Denis Kenzior
9a0d620800
wsc: Refactor includes
2016-05-05 12:07:46 -05:00
Denis Kenzior
0e3495488f
wiphy: Move netdev_state enum
2016-05-05 11:40:54 -05:00
Denis Kenzior
08decb340e
netdev: Move rta_add_u8
...
Move closer to where it is used
2016-05-05 11:32:11 -05:00
Denis Kenzior
97be0e87c3
scan: Fix crash
...
Sometimes the periodic scan is started and stopped before the timeout
was created. If periodic_scan_stop was called before, the timeout
object was not reset to NULL, which can lead to a crash.
2016-04-13 16:03:33 -05:00
Denis Kenzior
3cbbe2cc42
main: Add backtracing support
...
Ported from oFono @ commit df5d691c39b0ff41d3d98a01db078f7157eb0250.
2016-04-13 14:08:10 -05:00
Denis Kenzior
45b7323e0a
scan: Add support for scan abortions
2016-04-12 13:49:50 -05:00
Andrew Zaborowski
692bfa23fe
wiphy: Sanity check before netdev_disassociated
...
The lost beacon event can be received when iwd thinks netdev is
diconnected if it was connected before iwd started, and then
netdev_disassociated will segfault.
2016-04-11 14:39:06 -05:00
Andrew Zaborowski
fb1adcae2a
dbus: Use recently added l_dbus_name_acquire
...
Use the backend-independent l_dbus_name_acquire.
2016-04-04 14:35:52 -05:00
Andrew Zaborowski
a64030069e
dbus: Drop unused linux/kdbus.h src/kdbus.c
...
Drop the functions that duplicated ell functionality and the now
unneeded kdbus.h copy.
2016-04-04 14:27:26 -05:00
Andrew Zaborowski
79839dbfd6
dbus: Use native ell kdbus calls
...
It seems until now dbus.c would always connect to dbus-1 (unless
DBUS_SESSION_BUS_ADDRESS pointed at kdbus) and passing -K only made
iwd create a kdbus bus and not use it. Now use ell to actually use
kdbus instead of dbus-1 with -K. Don't use the src/kdbus.c functions
that duplicate ell functionality. As a side effect the connection
description and the bloom sizes are now the ell defaults.
2016-04-04 14:25:59 -05:00
Rahul Rahul
971d93a9e6
wiphy: Add ConnectedNetwork property to Device
...
This property is optional. If the device is connected, it holds the
object path of the connected network.
2016-03-09 16:46:07 -06:00
Rahul Rahul
07f49bc02d
dbus: Add API for adding object path value to a dict
2016-03-09 13:24:19 -06:00
Rahul Rahul
492f25c4f6
wiphy: Add Connected property to Network interface
...
Added a property that will allow one to figure out whether this Network
is currently connected.
2016-03-04 10:20:41 -06:00
Mat Martineau
96e7be28bd
wiphy: Removed unused function
2016-02-18 18:21:22 -06:00
Denis Kenzior
e2de4423db
dbus: Update to the new ell D-Bus APIs
2016-02-11 16:19:55 -06:00
Denis Kenzior
ad7bbbb920
wiphy: Record network last-connected time
2016-02-11 16:19:44 -06:00
Denis Kenzior
30d1673ba4
eapol: Add support for SHA-256 based AKMs
2016-02-10 19:18:56 -06:00
Denis Kenzior
c35409d73c
eapol: Update to the new API
2016-02-10 16:55:15 -06:00
Denis Kenzior
e084839b4f
crypto: Prepare for SHA256 based PTK derivation
2016-02-10 16:54:55 -06:00
Denis Kenzior
39444ab532
crypto: Add SHA256 based KDF
2016-02-10 16:30:22 -06:00
Denis Kenzior
3320d31ead
sha1: Remove sha1.[ch]
2016-02-10 14:36:14 -06:00
Denis Kenzior
ac4a901518
crypto: move pbkdf2_sha1 to crypto.c
2016-02-10 14:32:27 -06:00
Denis Kenzior
6199960b52
crypto: Move + rework prf_sha1 into crypto.c
2016-02-10 14:16:32 -06:00
Denis Kenzior
064f1e0df9
crypto: Move hmac_sha1 to crypto.c
2016-02-10 14:12:46 -06:00
Denis Kenzior
962e2e8b2c
wiphy: Use SHA256 AKM if available
2016-02-10 13:20:46 -06:00
Denis Kenzior
76c62b0843
scan: Keep track of SHA256 support over PSK/8021X
2016-02-10 12:56:11 -06:00
Denis Kenzior
976bb7ceb1
network: Update network_connected implementation
2016-02-09 17:08:43 -06:00
Denis Kenzior
b9402af687
scan: Add scan_ssid_security_to_str
2016-02-09 17:08:03 -06:00
Denis Kenzior
342ad9c61c
eapol: Add clarifying comment
2015-11-03 16:26:34 -06:00
Denis Kenzior
05151d762d
eap-md5: Convert to dynamic method registration
2015-11-02 21:51:07 -06:00
Denis Kenzior
0816d04873
eap-ttls: Convert to dynamic method registration
2015-11-02 21:51:07 -06:00
Denis Kenzior
d8d6e134f1
eap-tls: Convert to dynamic method registration
2015-11-02 21:51:07 -06:00
Denis Kenzior
cdfc854056
eap: Add dynamic EAP method registration
2015-11-02 21:51:07 -06:00
Andrew Zaborowski
02eeb82c53
wiphy: Allow connecting to 8021X networks
2015-11-02 21:51:07 -06:00
Andrew Zaborowski
14020b2aa6
eapol: Handle EAPoL-EAP packets
2015-11-02 21:45:43 -06:00
Andrew Zaborowski
2bccb7e7dc
eapol: Remove user_data from __eapol_rx_packet args
...
Instead of passing the user_data parameter in every __eapol_rx_packet
call to be used by EAPOL in all tx_packet calls, add
eapol_sm_set_tx_user_data function that sets the value of user_data for
all subsequent tx_packet calls. This way tx_packet can be called from
places that are not necessarily inside an __eapol_rx_packet call.
2015-11-02 21:40:21 -06:00
Andrew Zaborowski
ef9b6f41ce
eapol: Separate EAPOL header from struct eapol_key
...
This is needed so we can better handle sending and receiving EAPoL
packets other than EAPoL-Key.
2015-11-02 21:40:21 -06:00
Andrew Zaborowski
830161399e
eap: Implement the EAP-TTLS method
...
Only EAP as the inner authentication option is supported. According to
wikipedia this is the most popular EAP-TTLS use case, with MD5 as the
inner EAP's method.
2015-11-02 21:40:21 -06:00
Andrew Zaborowski
c5e368a264
eap: Implement the EAP-MD5-Challenge method
2015-11-02 21:40:21 -06:00
Andrew Zaborowski
f55db6a1c4
eap: Implement EAP-TLS
...
Add the EAP-TLS authentication method. Currently, all the credentials
data is read from the provisioning file even though things like the
private key passphrase should possibly be obtained from the dbus agent.
2015-11-02 21:40:21 -06:00
Denis Kenzior
88bdd46ec3
eap: Add eap_unregister_method
2015-11-02 21:40:19 -06:00
Denis Kenzior
095eec48ab
eap: Make eap_register_method public
2015-11-02 09:54:12 -06:00
Andrew Zaborowski
3f17fa1159
eap: Add initial EAP API
...
Adds eap.c/eap.h with the initial EAP API definitions. No actual EAP
methods are added in this patch.
2015-11-02 09:40:03 -06:00
Andrew Zaborowski
27aa254358
scan: Always call the trigger callback
...
Otherwise dbus Scan calls will not return on success.
2015-11-02 09:24:10 -06:00
Denis Kenzior
5f55c07da9
wiphy: Keep track of supported freqs & bands
2015-10-06 15:23:32 -05:00
Denis Kenzior
22ab0e73a2
scan: Add scan_freq_set_get_bands
2015-10-06 15:23:09 -05:00
Denis Kenzior
4c0d366fcf
wsc: Reply and clean wsc_sm on netdev removal
2015-10-06 11:39:01 -05:00
Denis Kenzior
b81737a7eb
wsc: Add initial scanning logic
2015-10-05 22:37:46 -05:00
Denis Kenzior
f62054eb52
scan: Allow cancelation of scan requests
2015-10-05 22:37:12 -05:00
Denis Kenzior
13dde81f5b
main: Make valgrind happy
2015-10-02 12:58:38 -05:00
Denis Kenzior
14e40f27e3
netdev: Add netdev attribute getters
2015-10-02 12:58:26 -05:00
Denis Kenzior
8a68ebd65b
scan: Move bss_address_to_string to scan.[ch]
2015-10-02 12:06:20 -05:00
Denis Kenzior
6a28baa893
scan: Process Active scan requests
2015-09-30 13:38:41 -05:00
Denis Kenzior
e551133960
scan: Add scan_active
2015-09-30 11:36:00 -05:00
Denis Kenzior
46da18f23b
wsc: Register WSC interface
2015-09-29 12:15:37 -05:00
Denis Kenzior
ca0e3eb940
wiphy: Call netdev watches
2015-09-29 12:14:48 -05:00
Denis Kenzior
6068b3e364
scan: Make nl80211 static
2015-09-28 20:41:02 -05:00
Denis Kenzior
8026921801
main: Rework init/exit logic
2015-09-28 20:41:02 -05:00
Denis Kenzior
f8cf9cf154
wsc: Add wsc_init and wsc_exit
2015-09-28 20:41:00 -05:00
Denis Kenzior
e1bdd7ce1e
netdev: Add netdev watch infrastructure
2015-09-28 20:37:08 -05:00
Denis Kenzior
b19a683c36
wiphy: Rename function
2015-09-28 20:37:08 -05:00
Denis Kenzior
907b7d1e07
netdev: Move NETDEV_STATE enum to netdev.h
2015-09-28 20:37:08 -05:00
Denis Kenzior
50cc76e227
dbus: Add dbus_error_not_implemented
2015-09-28 20:37:07 -05:00
Denis Kenzior
d0d509d864
wsc: Add initial PushButton SM
2015-09-28 20:37:07 -05:00
Denis Kenzior
46a0c1db00
scan: Extract WSC IEs
2015-09-28 20:37:04 -05:00
Denis Kenzior
0b298dd313
scan: Add debug in scan_exit
2015-09-22 14:07:27 -05:00
Denis Kenzior
3f7e6e86bb
scan: Reset nl80211 when scan_exit called
2015-09-22 14:07:02 -05:00
Denis Kenzior
f064230afa
scan: Add scan request queue
...
For queuing up Active & Passive scans from other modules inside IWD
2015-09-22 14:06:40 -05:00
Denis Kenzior
b000c702b0
scan: Refactor scanning code
...
In preparation for adding active scans
2015-09-22 14:04:08 -05:00
Denis Kenzior
c37e700921
wsc: Add wsc_uuid_from_addr
2015-09-18 17:16:09 -05:00
Denis Kenzior
e055460709
wsc: Rename wsc.[ch] to wscutil.[ch]
2015-09-10 23:07:34 -05:00
Denis Kenzior
8261dab46b
ie: Add ie_tlv_encapsulate_wsc_payload
2015-09-10 22:30:43 -05:00
Denis Kenzior
c2aa596dd4
ie: Tweak function signature
2015-09-10 22:29:58 -05:00
Denis Kenzior
c23b1e3bc0
wsc: Add wsc_build_probe_request utility
2015-09-09 09:31:52 -05:00
Denis Kenzior
241e459ae7
wsc: Add wsc_parse_probe_request
2015-09-09 08:52:49 -05:00
Denis Kenzior
ab33a22149
wsc: Handle ATTR_REQUESTED_DEVICE_TYPE
2015-09-09 08:52:49 -05:00
Denis Kenzior
a1c198ab11
wsc: extract ATTR_CONFIGURATION_ERROR
2015-09-08 21:09:04 -05:00
Denis Kenzior
b0e306b407
wsc: Extract ATTR_ASSOCIATION_STATE
2015-09-08 21:07:17 -05:00
Denis Kenzior
9a3e78d1fc
wsc: Add extractor for ATTR_REQUEST_TYPE
2015-09-08 20:45:52 -05:00
Denis Kenzior
3eee3d47ee
wsc: Add Beacon frame parser
2015-07-23 19:42:29 -05:00
Denis Kenzior
86252a98cc
wsc: Parse additional attributes for ProbeResponse
...
Probe Response messages can contain additional attributes tucked away
into the WFA-Vendor specific attribute. Parse these attributes while
making sure the order is as expected.
2015-07-23 16:47:34 -05:00
Denis Kenzior
2f5a62d85c
wsc: Add additional comment
2015-07-23 16:47:34 -05:00
Denis Kenzior
01b5445e94
wsc: Add SelectedRegistrar attribute checking
2015-07-23 16:47:34 -05:00
Marcel Holtmann
07301eb74f
wsc: Cast data pointer into char for UTF-8 validation
2015-07-19 18:44:40 +02:00
Denis Kenzior
fa9b0e721b
wsc: Add initial parser for ProbeResponse messages
2015-07-17 14:53:48 -05:00
Denis Kenzior
2cc0be5482
wsc: Add initial set of extractor functions
2015-07-17 14:53:21 -05:00
Denis Kenzior
cd465852b4
wsc: Add initial message parser framework
2015-07-17 14:52:46 -05:00
Denis Kenzior
ad08dfad33
wsc: Add WFA extension iterator + recurse
2015-07-15 14:44:28 -05:00
Denis Kenzior
65c8a29370
wsc: Add WSC attribute iterator
2015-07-15 12:52:23 -05:00
Denis Kenzior
2fdf03cb84
ie: Rearrange header order
2015-07-13 13:26:55 -05:00
Denis Kenzior
0bf7fffbac
ie: fix whitespace
2015-07-09 14:20:59 -05:00
Denis Kenzior
3442736869
ie: add ie_tlv_extract_wsc_payload
2015-07-09 14:20:10 -05:00
Denis Kenzior
0389c60066
wsc: Add initial enum definitions from the spec
2015-07-01 09:46:43 -05:00
Denis Kenzior
94aba17968
wiphy: Add auto-connect logic
2015-06-22 18:33:55 -05:00
Denis Kenzior
f055c22825
wiphy: Don't crash if called outside D-Bus
2015-06-22 18:33:38 -05:00
Denis Kenzior
002ca518c9
wiphy: Keep track of auto-connect candidates
2015-06-22 17:42:30 -05:00
Denis Kenzior
a2be179f57
wiphy: Add netdev state machine
2015-06-22 17:16:18 -05:00
Denis Kenzior
cd1ef5acf7
main: add network_init and network_exit
2015-06-22 15:08:12 -05:00
Denis Kenzior
55f4c3275b
network: Fix typo
2015-06-22 15:08:02 -05:00
Denis Kenzior
971b3dfed0
scan: Make scan_bss_compute_rank static
2015-06-22 14:12:20 -05:00
Denis Kenzior
ce670bdcb1
network: Add network_rankmod
2015-06-18 06:11:14 -05:00
Denis Kenzior
d3f0bd5e27
network: Add initial network usage tracking
2015-06-18 05:18:26 -05:00
Denis Kenzior
035b2c1522
scan: add missing forward-declarations
2015-06-18 03:48:06 -05:00
Denis Kenzior
cbff1372e8
storage: add storage_network_get_mtime
2015-06-18 03:19:28 -05:00
Denis Kenzior
e153d94989
storage: Add storage_network_touch
2015-06-16 19:16:42 -05:00
Denis Kenzior
831d702ab2
wiphy: Add rank to debug output in process_bss
2015-06-16 17:12:28 -05:00
Denis Kenzior
0d977f62f6
wiphy: Use scan_bss_rank_compare
2015-06-16 17:12:28 -05:00
Denis Kenzior
0cba8ea2e9
scan: Add scan_bss_rank_compare
2015-06-16 17:12:26 -05:00
Denis Kenzior
7df688e11b
wiphy: Fix memory leak
...
==2469== 24 bytes in 1 blocks are still reachable in loss record 1 of 1
==2469== at 0x4C2B970: malloc (vg_replace_malloc.c:296)
==2469== by 0x40E6DD: l_malloc (util.c:62)
==2469== by 0x40F1CD: l_queue_new (queue.c:63)
==2469== by 0x40D534: scan_init (scan.c:796)
==2469== by 0x403AC3: nl80211_appeared (wiphy.c:2121)
==2469== by 0x415FF3: get_family_callback (genl.c:987)
==2469== by 0x415A4F: process_request (genl.c:381)
==2469== by 0x415A4F: received_data (genl.c:492)
==2469== by 0x413184: io_callback (io.c:120)
==2469== by 0x4127C2: l_main_run (main.c:346)
==2469== by 0x40253E: main (main.c:171)
2015-06-10 16:41:37 -05:00
Denis Kenzior
03004bd7b6
scan: Rename scan_free to scan_exit
2015-06-10 16:41:37 -05:00
Denis Kenzior
9773405c47
scan: Parse scanned frequencies
2015-06-10 16:41:37 -05:00
Denis Kenzior
b70f5a239d
scan: Add scan_freq_set utility class
2015-06-10 16:41:35 -05:00
Denis Kenzior
5ae63817b9
scan: Add scan_freq_to_channel
2015-06-10 16:38:49 -05:00
Denis Kenzior
f24b550196
scan: Include supported rates in ranking
2015-06-10 16:38:49 -05:00
Denis Kenzior
9eac017ec4
scan: Parse [extended] supported rates ie
2015-06-10 16:38:45 -05:00
Denis Kenzior
f648a3f0eb
scan: Include BSS Load channel utilization in rank
2015-06-10 16:28:14 -05:00
Denis Kenzior
3f2c728242
scan: Fix signal strength ranking calculation
...
We incorrectly ranked lower signal strength APs higher.
2015-06-10 16:28:14 -05:00
Denis Kenzior
99ac4d1b0d
scan: Make factors static const
2015-06-10 16:28:14 -05:00
Denis Kenzior
7cded805ce
ie: Add [extended] supported rates parser
2015-06-10 16:28:12 -05:00
Denis Kenzior
baa97b13e9
ie: Add BSS Load parser
2015-06-10 10:39:33 -05:00
Denis Kenzior
f1d81cd3c5
eapol: Remove unneded TODO comment
2015-06-08 10:46:48 -05:00
Denis Kenzior
1b4a3f19f3
scan: Add initial BSS rank computation
2015-06-05 18:18:55 -05:00
Denis Kenzior
05c83349c6
scan: Add periodic scanning
2015-06-04 22:32:10 -05:00
Denis Kenzior
f2f1bfcdf9
scan: Move rest of scanning code into scan.c
2015-06-01 09:45:47 -05:00
Denis Kenzior
92c677e715
wiphy: Remove scheduled scan support
...
Refactoring the entire scan code, and this part seems to not be
supported by the target kernels. Revisit / redo this functionality once
things become a bit clearer.
2015-05-31 22:10:35 -05:00