Peter Seiderer
7d6e11ddd5
main: Fix __iwd_backtrace_init() availability detection
...
Check for HAVE_EXECINFO_H for all __iwd_backtrace_init usages.
Fixes:
src/main.o: In function `main':
main.c:(.text.startup+0x798): undefined reference to `__iwd_backtrace_init'
collect2: error: ld returned 1 exit status
2018-11-10 19:09:14 +01:00
Denis Kenzior
8732a9f38a
main: Add checks for asymmetric key support
...
Tell the user that Kernel 4.20 with asymmetric key support enabled is
required to support TLS based (EAP/PEAP/TTLS) WPA-Enterprise methods.
2018-11-09 11:50:29 -06:00
Patrik Flykt
c68ae2f00b
main: Log optimized implementations only when they exist
...
Log optimized implementations strings only when the hashmap contains
items in order to avoid an unnecessary line of text with no members
printed out.
2018-11-05 11:52:48 -06:00
Marcel Holtmann
72a64fa7fb
build: Adjust to the latest ELL signal API changes
2018-11-01 22:09:19 +01:00
Marcel Holtmann
a011909556
main: Use l_main_run_with_signal instead of open coding it
2018-11-01 19:56:16 +01:00
Marcel Holtmann
38e831afa0
main: Make genl and nl80211 global variables static
2018-11-01 19:55:54 +01:00
Denis Kenzior
d22e57c994
treewide: Remove use of key-private.h
2018-10-19 00:31:41 -05:00
James Prestwood
70d6c9c692
adhoc: implement setting TX GTK
...
Adhoc requires 2 GTK's to be set, a single TX GTK and a per-mac RX GTK.
The per-mac RX GTK already gets set via netdev_set_gtk. The single TX GTK
is created the same as AP, where, upon the first station connecting a GTK
is generated and set in the kernel. Then any subsequent stations use
GET_KEY to retrieve the GTK and set it in the handshake.
2018-10-08 21:38:30 -05:00
Marcel Holtmann
2606bc73ad
build: Add DAEMON_ prefix to CONFIGDIR and STORAGEDIR
2018-09-14 17:58:44 +02:00
Marcel Holtmann
5126459ecc
main: Fix the order of --help and -h option handling
2018-09-14 15:19:06 +02:00
Denis Kenzior
b181604c18
main: Don't init nl80211 until dbus name is owned
2018-09-11 20:06:00 -05:00
Denis Kenzior
641e71a02f
station: Add skeleton
2018-08-31 20:24:15 -05:00
Denis Kenzior
da52bcd109
netdev: Rework netdev_init/exit
2018-08-17 23:47:20 -05:00
Denis Kenzior
b3e937e11a
main: Rework initialization order
...
Group together all the configuration settings / reading code together
for more readability.
Initialize eap, eapol and rfkill before device
2018-08-17 23:35:09 -05:00
Denis Kenzior
c5b19dc747
main: Don't call wsc_exit twice
2018-08-17 16:45:05 -05:00
Denis Kenzior
1f512ff85c
device: Move device_init/device_exit to iwd.h
2018-08-14 14:57:19 -05:00
Denis Kenzior
1c27aa5f1d
knownnetworks: move known_networks_init/exit to iwd.h
2018-08-14 13:36:48 -05:00
James Prestwood
ff197edfc4
main: reordered plugin init/exit
...
This fixes improper cleanup when ofono leaves the bus after a simauth
instance has been cleaned up. The problem was that the plugin
exit was being called after the simauth module, causing there to
be stale simauth instances that were no longer valid. Now plugins
cleanup before simauth.
This fix fixes the print seen when iwd exits:
"Auth provider queue was not empty on exit!"
2018-08-07 17:18:23 -05:00
Denis Kenzior
c37146d403
wsc: Rework wsc_init & wsc_exit
...
- wsc module does not need nl80211 any longer, so remove it.
- Move wsc_init & wsc_exit declarations to iwd.h and remove wsc.h
- re-arrange how wsc_init & wsc_exit is called inside main.c.
2018-07-17 19:19:09 -05:00
Denis Kenzior
17bfbbd397
main: Re-arrange _exit order
...
The plugin_exit was in the wrong place, it should be triggered in case
genl creation fails. Also adhoc_exit was in the wrong sequence compared
to _init()
2018-07-17 19:15:08 -05:00
Denis Kenzior
6b58ab1a08
main: Simplify sim_auth_init
...
There's no real reason why sim_auth_init should fail, so simplify the
procedure and move declarations to iwd.h
2018-07-17 19:12:48 -05:00
James Prestwood
682c844239
main: added adhoc init to main
2018-07-17 16:46:21 -05:00
Denis Kenzior
7c18e3cdfe
iwd: Move network_init & network_exit to iwd.h
2018-05-24 19:22:12 -05:00
Denis Kenzior
2aba2f3ba9
main: Disable debug output by default
...
Instead use '-d' command line option. This option uses an optional
argument. Without an argument, '*' is assumed. Otherwise you can
specify a glob string to match. Any debug output that matches the glob
string will be printed. e.g.:
src/iwd -d '*eap*'
2018-05-19 18:29:28 -05:00
Denis Kenzior
6a28cd5527
main: Check and print missing kernel options
2018-05-03 14:45:26 -05:00
James Prestwood
88a1520dbd
main: set eapol config
2018-04-02 13:54:25 -05:00
Marcel Holtmann
64dcf11042
main: Rephrase warning when optional configuration file is missing
2018-01-29 02:25:28 -08:00
Marcel Holtmann
980f6f3645
main: Rename iwd/iwd.conf into iwd/main.conf
2018-01-29 02:13:41 -08:00
James Prestwood
a595587b65
main: start simauth module
2017-11-30 08:49:49 -06:00
James Prestwood
e030151f7d
main: start up plugin module
...
iwd now supports plugin loading, whitelisting and blacklisting. Both
the whitelist and the blacklist support multiple patterns separated by a
',' character.
2017-11-28 13:32:36 -06:00
Andrew Zaborowski
212bc08104
ap: Add AP mode api
...
Very basic WPA2-PSK only access point mode API with stubs of the start and
stop functions.
2017-09-12 14:29:34 -05:00
Andrew Zaborowski
fb4ba71952
main: Don't init nl80211 if we're terminating
...
Don't enter nl80211_appeared if we're already terminating and inside the
1 second timeout. This fixes a potential crash in device_free() caused
by a netdev_init() and a netdev_exit() happening without netdev_shutdown
in between. netdev_shutdown has already run if terminating is true.
src/main.c:main() Opening nl80211 interface
src/eap.c:__eap_method_enable()
src/eap-wsc.c:eap_wsc_init()
src/eap-md5.c:eap_md5_init()
src/eap-tls.c:eap_tls_init()
src/eap-ttls.c:eap_ttls_init()
src/eap-mschapv2.c:eap_mschapv2_init()
Terminate
src/main.c:nl80211_appeared() Found nl80211 interface
src/netdev.c:netdev_init() Opening route netlink socket
src/wiphy.c:protocol_features_callback() Found split wiphy dump support
src/wiphy.c:regulatory_info_callback() Regulatory alpha2 is 00
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:parse_supported_bands()
src/wiphy.c:parse_supported_frequencies()
src/wiphy.c:parse_supported_frequencies()
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_is_managed() whitelist filtered phy: rad1
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_is_managed() whitelist filtered phy: rad1
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_is_managed() whitelist filtered phy: rad1
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_is_managed() whitelist filtered phy: rad1
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_is_managed() whitelist filtered phy: rad1
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_is_managed() whitelist filtered phy: rad1
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_is_managed() whitelist filtered phy: rad0
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_is_managed() whitelist filtered phy: rad0
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_is_managed() whitelist filtered phy: rad0
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_is_managed() whitelist filtered phy: rad0
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_is_managed() whitelist filtered phy: rad0
src/wiphy.c:wiphy_dump_callback()
src/wiphy.c:wiphy_is_managed() whitelist filtered phy: rad0
Wiphy: 2, Name: rad2
Bands: 2.4 GHz 5 GHz
Ciphers: CCMP TKIP BIP
src/netdev.c:netdev_create_from_genl() Created interface wln2[6]
src/netdev.c:netdev_initial_up_cb() Interface 6 initialized
src/device.c:device_enter_state() Old State: off, new state:
autoconnect
src/scan.c:scan_periodic_start() Starting periodic scan for
ifindex: 6
src/scan.c:scan_notify() Scan notification 33
src/netdev.c:netdev_operstate_dormant_cb() netdev: 6, success: 1
src/scan.c:scan_periodic_done()
src/scan.c:scan_periodic_done() Periodic scan triggered for
ifindex: 6
src/eap.c:__eap_method_disable()
src/eap-wsc.c:eap_wsc_exit()
src/eap-md5.c:eap_md5_exit()
src/eap-tls.c:eap_tls_exit()
src/eap-ttls.c:eap_ttls_exit()
src/eap-mschapv2.c:eap_mschapv2_exit()
src/main.c:nl80211_vanished() Lost nl80211 interface
src/wsc.c:wsc_exit()
src/scan.c:scan_exit()
src/scan.c:scan_context_free() sc: 0x5434ab0
src/netdev.c:netdev_exit() Closing route netlink socket
src/wiphy.c:wiphy_free() Freeing wiphy rad2[2]
device_list isn't empty!
src/device.c:device_free()
(crash here)
2017-05-04 10:50:33 -05:00
Andrew Zaborowski
33f8b1f53d
dbus: Use the shutdown procedure instead of l_main_quit
...
Move the calling of the *_shutdown functions from the signal handler to
a new public function, and use that function inside the DBus disconnect
handler to make sure resources are cleanly released.
2017-05-04 10:50:29 -05:00
Denis Kenzior
cacd0d83f4
wiphy: Add phy filtering
2017-03-16 16:50:25 -05:00
Denis Kenzior
2e820abea1
backtrace: Try to find absolute executable path
...
This allows us to get backtraces from test_runner which does not start
iwd from a current working directory that is a parent of the iwd
executable.
2017-03-16 15:17:41 -05:00
Denis Kenzior
d03f23200a
eap: Load MTU settings from iwd.conf
2016-11-15 16:44:07 -06:00
Tim Kourt
2d73fb35fe
main: Remove unnecessary initialization
2016-11-03 13:28:19 -05:00
Tim Kourt
17527d4570
main: init iwd config
2016-11-02 16:06:10 -05:00
Marcel Holtmann
88909947e2
build: Remove support for usage of kdbus
2016-10-16 19:41:27 +02:00
Andrew Zaborowski
19fa024bd8
netdev: Reset interface state on init and exit
...
Take any managed interface down when iwd detects it and bring it back
up to start with a clean state. On exit take interfaces down.
2016-07-13 12:36:35 -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
Denis Kenzior
e76daf224c
netdev: Implement interface filtering
2016-06-23 17:34:47 -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
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
Denis Kenzior
454f7d7867
iwd: Update to the new l_main api
2016-06-09 09:56:40 -05:00
Denis Kenzior
280f2d40ad
netdev: Make netdev_init accept nl80211
2016-06-03 09:53:46 -05:00
Andrew Zaborowski
2901cb1169
main: Restore agent_exit call before main loop exit
2016-05-25 09:57:58 -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
Denis Kenzior
414bc3198d
wiphy: Move network object definition
2016-05-11 21:59:32 -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
3cbbe2cc42
main: Add backtracing support
...
Ported from oFono @ commit df5d691c39b0ff41d3d98a01db078f7157eb0250.
2016-04-13 14:08:10 -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
Denis Kenzior
13dde81f5b
main: Make valgrind happy
2015-10-02 12:58:38 -05:00
Denis Kenzior
8026921801
main: Rework init/exit logic
2015-09-28 20:41:02 -05:00
Denis Kenzior
cd1ef5acf7
main: add network_init and network_exit
2015-06-22 15:08:12 -05:00
Andrzej Zaborowski
f424559af5
iwd: Add -K to getopt optstring to fix short option.
2015-04-17 10:45:00 -05:00
Jukka Rissanen
e17d2d63c2
agent: Make sure Release is sent when iwd exits
...
The main loop cannot be quit in signal handler as that would
prevent the agent.c from sending the Release command to the agent.
2015-03-02 20:59:01 -06:00
Jukka Rissanen
bd6189aef0
main: Remove obsolete -S option
...
As there is no handler for -S option, we can remove it.
2015-01-26 21:53:55 -06:00
Jukka Rissanen
9c380ad95c
main: DBus debug option -B was missing
...
It was not possible to activate DBus debugging.
2015-01-26 21:53:30 -06:00
Denis Kenzior
333b28bf3a
main: Add --dbus-debug command line parameter
2014-11-07 22:44:30 -06:00
Denis Kenzior
ca5f5b2e2b
main: Remove unneeded ssid command line argument
2014-11-07 21:37:09 -06:00
Denis Kenzior
429ea08202
dbus: Add basic D-Bus plumbing
2014-10-06 22:13:37 -05:00
Marcel Holtmann
70bc082d41
core: Make Kernel D-Bus setup optional
2014-08-09 10:59:48 -07:00
Marcel Holtmann
c13d50fab9
core: Add command line option to provide SSID
2014-08-08 22:19:47 -07:00
Marcel Holtmann
1ab85bdbe5
core: Add command line options support to daemon
2014-08-08 21:54:03 -07:00
Marcel Holtmann
999ba12f31
core: Add skeleton for nl80211 setup
2014-07-29 21:25:01 +02:00
Marcel Holtmann
188917cc29
core: Add missing include for network interface tracking
2014-06-21 20:54:58 +02:00
Marcel Holtmann
37cba460a8
core: Add tracking of network interfaces via RTNL
2014-06-21 13:41:40 +02:00
Marcel Holtmann
f299d96e77
core: Open the private bus connection and acquire name
2014-05-20 23:07:49 -07:00
Marcel Holtmann
bf7c041b47
core: Add support for creating private bus
2014-05-20 21:44:13 -07:00
Marcel Holtmann
050539e2e3
core: Add skeleton for main daemon
2014-05-11 11:01:11 -07:00