Age | Commit message (Collapse) | Author | Files | Lines |
|
The default configuration will be created by the core if no
plugin is used. Therefore there is no need for this plugin.
|
|
On popular request the plugin is renamed. The plugin is reading
local files and has nothing to do with IVI.
|
|
Remove unused 'err' variable and properly initialize 'ident' for error cases.
|
|
Make sure that user callback data is cleared correctly
if vpn connect attempt fails.
|
|
|
|
We must keep the vpn connections hash alive as long as
connman is running. We must not remove the hash when
vpnd dies, otherwise we might feed null pointer to
various glib hash functions.
|
|
If config file should also be parsed and the values then stored in
the config object.
|
|
Monitor changes on the config files. Either create, modify or destroy
them according the events we get from the inotify interface.
|
|
Introduce the second hash table which tracks the config object lifetime
based on the file existens. The parsing of the file and creation of the
config object is part of the next patch.
|
|
The policy data object is refcounted because the policy data
object can be created either through the session core or
from the file based policy. In order to avoid complex logic
which tries to figure out when to is safe to destroy the object
we just fall back to refcountig.
polich_hash is the owner of the policy object. When a object is
created it is stored there. The key is the identitfier. Since the
session core does not know about the identifier we introduce
an additional hash table which maps from session pointer to the policy
object.
|
|
|
|
Add only the empty 'framework'. In the following patches we add
step by step the implementation.
|
|
|
|
Because the vpnd Create() in manager API only creates and does
not connect the vpn, we must do the connect part after the
vpn is created. This requires a callback which is called when
the connection is established. Eventually this patch becomes
obsolete because the CreateProvider() connman API is deprecated.
|
|
Needed as sometimes we do not know the path but know the ident.
|
|
|
|
The server and user route handling is refactored in order to
reflect the vpn dbus API changes. The routes are now array of
dicts in dbus API.
|
|
|
|
|
|
The device creation function should be part of device.c and
not inet.c. After this change the inet.c can be used by
separate vpn daemon.
|
|
Whenever the GPRS contextext is removed we need also to remove
the network object. Following sequence was observed:
cm_update_attached() /huawei_1 Attached 1
modem_changed() /huawei_1 Interfaces 0x07
Plugin creates network object and registers it at core
cm_update_attached() /huawei_1 Attached 0
service.c:run_auto_connect()
set_property() /huawei_1 path /huawei_1/context1 org.ofono.ConnectionContext.Active
Obviously, the context is not attached at this point so we get an
Failed to change property: /huawei_1/context1 org.ofono.ConnectionContext.Active: org.ofono.Error.NotAttached GPRS is not
attached
Fixes BMC#25725
|
|
If -ECONNABORTED is received from the gsupplicant network disconnect
callback, it's an indication that the interface has already been
removed from wpa_supplicant side. This can happen due to a race condition
between rtnl and wpa_supplicant interface removal when a USB WiFi dongle
is pulled out.
The pointers given to the callback can no longer be trusted, don't touch
them in the callback. The have been removed by other code at this point.
|
|
If service settings cannot be loaded, then skip that service.
Thanks for Felipe Tonello for reporting the issue.
|
|
Instead start using enum connman_service_type directly.
|
|
Instead returning directly a config when create() is called
in policy plugin, use a callback function for handing over a valid
configuration from the plugin to the session core. This prepares
support for asynchronous create call.
|
|
Connman OpenVPN
OpenVPN.TLSAuth --tls-auth <file> [<direction>]
OpenVPN.TLSAuthDir optional <direction> argument to '--tls-auth'
Since 'OpenVPN.TLSAuthDir' contains the optional <direction> argument for
'OpenVPN.TLSAuth', handle them separately. The special handling is
identified by setting openvpn command line argument to NULL.
|
|
Connman OpenVPN
OpenVPN.NSCertType --ns-cert-type <client|server>
OpenVPN.AskPass --askpass <file>
OpenVPN.AuthNoCache --auth-nocache
|
|
|
|
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.
|
|
|
|
|
|
Basic types are not used for the configuration anymore.
|
|
|
|
Instead of passing in some string to identify we can use the
connman_session pointer. This allows us to keep the way sessions
are identfied away from the core, e.g. using the D-Bus owner id or
something else.
|
|
Support several session configuration plugins at runtime.
Set the default priority to low for the current policy plugin.
|
|
|
|
Wifi tethering works with kernel 3.4, but not with 3.5. Bisecting
showed that the following kernel patch causes the breakage:
"3edaf3e mac80211: manage AP netdev carrier state".
Running connman with debugging enabled showed that in case of 3.4
we have the following sequence of RTM_NEWLINK events from the kernel:
1. IFF_UP not set, ifi_change=1
2. IFF_UP,IFF_LOWER_UP, ifi_change=1
which makes connman do the following:
connmand[210]: plugins/wifi.c:wifi_newlink() index 4 flags 4098 change 1
connmand[210]: plugins/wifi.c:wifi_newlink() interface down
connmand[210]: plugins/wifi.c:wifi_newlink() index 4 flags 69635 change 1
connmand[210]: plugins/wifi.c:wifi_newlink() interface up
connmand[210]: plugins/wifi.c:wifi_newlink() carrier on
connmand[210]: plugins/wifi.c:handle_tethering() index 4 bridge tether
However, in 3.5 we have the following sequents of events from the kernel:
1. IFF_UP, ifi_change=1
2. IFF_UP,IFF_LOWER_UP, ifi_change=0
which makes connman do the following:
connmand[493]: plugins/wifi.c:wifi_newlink() index 4 flags 4099 change 1
connmand[493]: plugins/wifi.c:wifi_newlink() interface up
connmand[493]: plugins/wifi.c:wifi_newlink() index 4 flags 69635 change 0
The root-cause for it is that connman handles the "ifi_change" flag
incorrectly. Connman interprets it as "if non-zero, there was some change",
which is wrong. According to RFC 3549, it is "reserved for future use.
Must be set to 0xFFFFFFFF". Thus, just remove that check, which makes
tethering work.
|
|
Instead of allow the user configuring which plugin should build and used
via issuing 'configure --with-configplugin=foo' add explicit
enable flags 'configure --enable-session-policy'.
Also with this patch, the name is changed from session-default to
session-policy.
|
|
Convert usage of g_slist_append() to g_slist_prepend() where
appropriate. gdbus, dnsproxy, resolver, rtnl, session and session
unit test have ordering requirements and thus not touched.
|
|
The RoamingPolicy setting which should be set by the platform integrator
and not by the application developper is moved the configuration plugin.
|
|
Instead fallback using the configuration plugin for selecting
the emergency application.
Now we don't have to update all other sessions which makes
the whole code logic more straight forward. If a session is
marked as an emergency call and this application calls
Connect()/Disconnect() it will succedd and block all other
sessions when they try to call Connect() or Disconnect().
|
|
The Priority setting which should be set by the platform integrator
and not by the application developer is moved the configuration plugin.
|
|
|
|
Fixes BMC#25660
|
|
We should not use the Host variable from provider as it can
contain a non-resolved address.
Fixes BMC#25658
|
|
We should not use the Host variable from provider as it can
contain a non-resolved address.
|
|
Currently user is able to set the boolean VPN config value
only by setting the variable to "yes". This is not very
intuitive so accept also the value of "true" or "1".
|
|
In wifi plugin this means that we combine three wifi scan
functions (normal, fast, hidden) into one scan function.
|
|
We must not add duplicate entries to list of hidden AP.
There can be more that one service file for each AP if
we have multiple wifi cards in the system.
Fixes BMC#24779
|
|
We should scan hidden AP even if the AP is not marked
as autoconnectable so that the user is able to connect
to it manually.
|