Age | Commit message (Collapse) | Author | Files | Lines |
|
Signed-off-by: hyunuktak <hyunuk.tak@samsung.com>
Change-Id: I84a42375b5c59739e4caca1f726699ea7647ef17
|
|
Change-Id: I73fccf5f322ee2597f8f58d5e3d7f60ddeb0a641
|
|
Change-Id: Iff022e257ee9d2c5227585bf0b84e726914cc62b
|
|
Revise Wi-Fi enterprise to enable PEAP, TLS, TTLS
Fix wifi enterprise to support SIM and AKA
Change-Id: Ib9c10615fd0668b2ebca57eac9285bf8a3564427
|
|
Network client requires additional wifi specific info
Export the BSSID property
Export the MaxRate property
Export the detailed info for encryption mode(mixed,aes,tkip,wep,none)
Export the connman_network get/set method for bssid, maxrate,
encryption_mode property
Change-Id: Ic5744978282e49cb2f70165aaadc7822dc718dfb
|
|
|
|
|
|
Previously the number of scanned hidden WiFi networks was
restricted by the fast scan limit of the WiFi driver. This
patch takes into account the driver fast scan limit and will
scan for all configured hidden WiFi networks.
Thanks to Jukka for testing this.
|
|
|
|
|
|
The callback is required to properly handle scanning errors reported
by wpa_supplicant through the scan_done signal.
Steps to reproduce:
1. Set a country code to the WiFi card which have more frequencies
allowed than the world roaming allow.
2. Connect to a WiFi network not available in the world roaming setup.
3. Stop connman.
4. Change the country code to 00, be sure the frequencies use in step 2.
is no longer allowed. Take care of cfg80211 authorize frequencies when
beacons are received, I prefer using mac80211_hwsim from here to avoid
side effects about beacon reception.
5. Start connman again.
Now ConnMan is stuck in scanning state as the scan_fast method of
plugins/wifi.c is called with a forbidden frequency.
wpa_supplicant returns an error received in "gsupplicant/supplicant.c:
signal_scan_done", where the code enters 'if (success == FALSE)' but
unfortunately scan_callback is NULL at this point as the scan_callback is
normally set in interface_scan_result().
|
|
A driver can return a valid max scan SSID value of zero. Thus no fast
scans can be done, so the code falls back to a simple scan instead.
A value of zero is properly handled in plugins/wifi.c. An active scan
for a hidden SSID adds only the SSID parameter to the wpa_supplicant
D-Bus method call, which wpa_supplicant then handles properly.
Some drivers also report a max scan SSID value of one. In some of the
cases that value is bogus, the driver will not be able to do a fast
scan anyway. In addition, it is questionable why only one SSID can be
fast scanned as the feature would not differ much from an active scan
for a hidden network. Thus we set the limit to two, i.e. zero or one
is treated as zero, two or more is reported as is.
Thanks to Grant Erickson and Tomasz Bursztyka for finding and
pinpointing this issue.
Fixes BMC#25971
|
|
Although it seems wpa_supplicant can handle 4 SSIDs in version 0.7.x
and 16 starting with 0.8.x, in practise this does not work. Return the
value reported without relying on wpa_supplicant internals to handle
the situation. In order for hidden scans to work properly, the minimum
value needs to be 1.
|
|
When a WiFi USB dongle is removed, both rtnl and wpa_supplicant will
be telling that the device is gone. While disconnecting and removing
an interface via gsupplicant, check that D-Bus doesn't give us an
error indicating the interface is already unregistered from D-Bus.
The gdb output looks like:
(gdb) where
#0 0x0042247c in network_connect (network=0x2) at plugins/wifi.c:1197
#1 0x004228f0 in disconnect_callback (result=<value optimized out>,
interface=0x0, user_data=0x99) at plugins/wifi.c:1254
#2 0x0042b910 in network_remove_result (error=0x4d5458
"org.freedesktop.DBus.Error.UnknownMethod", iter=<value optimized
out>,
user_data=<value optimized out>) at gsupplicant/supplicant.c:3593
#3 0x0042ede0 in method_call_reply (call=0x4c6fd0,
user_data=0x4d3be8) at gsupplicant/dbus.c:386
#4 0x2abfddb4 in complete_pending_call_and_unlock () from
/usr/lib/libdbus-1.so.3
Also don't call the same callback twice.
|
|
|
|
When soft rfkill is on, wpa_supplicant sets the interface disabled and
sends a state named 'interface_disabled'. Taking this information into
account fixes the following issue:
- disable wifi (user setting) and hard rfkill it
- then un-hard rfkill it, whereafter rfkill states (soft/hard) will go
like this:
* from 1/1 to 0/0
* from 0/0 to 1/0
when 0/0 occurs, connman will request to enable wifi
The problem with this is that enabling wifi takes quite some time and
in between ConnMan will soft block wifi to disable it (according to
previous user setting). Thus it will request to disable wifi but since
enabling is still going on, this request won't do anything. Meanwhile
wpa_supplicant will also catch the soft rfkill event and wpa_supplicant
will set the state to 'interface_disabled', but since it's not handled
properly by ConnMan, the wifi_enable() callback will be called and the
function will assume wifi got enabled.
|
|
|
|
|
|
|
|
This is necessary for the next coming patches, to fix country setting by interface
|
|
Check whether a scan callback is set for the interface when
an interface removed signal is received from wpa_supplicant.
wpa_supplicant seems not to reply to any outstanding scan method
calls after a wpa_supplicant 'RemoveInterface' has been received.
|
|
|
|
Handle RSN and WPA security separately and combine the results.
|
|
This resolves several post-commit review coding style comments for
raw PSK support.
|
|
wpa_supplicant sends error if wlan interface cannot be created.
Do not treat this error as critical because after calling
g_critical() the program logging will be disabled.
|
|
This fixes "raw" PSK support by first converting the "raw" PSK from
a 64-character hexadecimal string to 32-byte array before appending
it to the network dictionary.
|
|
|
|
Fixes BMC#25120
|
|
|
|
Do no limit the scan entries to 4 (G_SUPPLICANT_MAX_FAST_SCAN)
but use the limit given by the driver. The limit is given by wpa_s.
If the supplicant does not return the limit, then use 4 as a max
value.
|
|
|
|
Note: on wpa_supplivant 0.7.x this fixes bug 21332 _only_ when switching
from wep to psk, not the other way round due to wpa_supplicant not telling
about RSN/WPA fields being empty. This could be fixed in parsing IE every
time it is updated, if wpa_s signals it. It work properly on
wpa_supplicant 0.8.x and 1.x since signaling RSN/WPA changes has been
fixed.
Fixes BMC#21332
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If gsupplicant sends a malformed passphrase,
wpa_supplicant return an error "invalid message format",
parsing this error avoids future usage of this passphrase.
|
|
|
|
Create proper UTF-8 encoded names from SSIDs. Invalid
sequneces will be replaced by replacement characters.
This function is based on the _g_utf8_make_valid() from glib.
|
|
As interface_added can potentially show up before the interface creation
callback, the device powered flag can be set from the latter.
|
|
|
|
Lot of fixes by Jukka Rissanen <jukka.rissanen@linux.intel.com>
|
|
|
|
|
|
Get the frequncy of gsupplicant network on connman network
creation, and always save the frequency of the wifi service.
|
|
This is only used for propagatong signal changes for now.
|
|
|
|
IE list was traversed past buffer limit in the last round.
|