Age | Commit message (Collapse) | Author | Files | Lines |
|
When a socket() has failed and a negative file descriptor has been set,
close() cannot accept a negative number as a parameter.
|
|
Fix error code for __connman_error_failed
|
|
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.
|
|
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.
|
|
|
|
The socket was not closed when the sendto failed.
|
|
|
|
The socket was not closed when err < 0 is true.
|
|
If service settings cannot be loaded, then skip that service.
Thanks for Felipe Tonello for reporting the issue.
|
|
|
|
Move the configuration part of __connman_session_create() into
session_create_cb(). With this change the policy plugin is able
to do async work to retrieve a configuration.
|
|
In order to be able to pass the user configuration provided through from
the D-Bus Manager.SessionCreate() call to the callback we need to store
the configuration into a local data data structure. This data structure
can then be passed into the callback introduced later on.
|
|
Instead start using enum connman_service_type directly.
|
|
|
|
|
|
This function name was a source of confusion because in a later patch
we introduce connman_session_parse_allowed_bearers() which will
call parse_bearers(). With this change it should be more readable.
|
|
The match_all will be expressed through CONNMAN_SESSION_TYPE_UNKNOWN.
The 'no match' case happens when allowed_bearers is NULL.
|
|
The string is only used when appending the bearer to the D-Bus
message in append_allowed_bearers(). Let's use
__connman_session_type2string() in append_allowed_bearers(). This
saves a bit of memory.
|
|
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.
|
|
Let's ensure that the policy plugin has all necessary callbacks
installed when connman_session_policy_register() is called. The rest
of the code expects that the create() and destroy() callbacks exist
whenever a plugin is used.
|
|
There is no point in iterating over the list when we always
pick the first element in the list.
|
|
We want to reuse this code snippet for the error case in
__connman_session_create() too.
|
|
The CreateSession D-Bus call should be marked as async call in order
to allow the session core to defer the response.
|
|
|
|
This is needed if manually configured addresses were used and later
DHCP was taken into use. If the manually configured IP information
(address, netmask and gateway) and the information given by DHCP is the
same, DHCP will not set the IP address to the interface.
|
|
|
|
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
|
|
|
|
Fixes BMC#25846
|
|
By default, both stdout and syslog messages go to the systemd journal,
which results in duplicate messages being logged.
Thanks to Vinicius Costa Gomes for pointing out this problem.
|
|
This fixes an issue with the TechnologyAdded signal when the first
un-hardblock event occurs:
- when a technology was created, D-Bus registration was done and hardblock
was set to TRUE even if there was no evidence that the technology was
rfkill driven
- when the technology was updated to be rfkill driven, hardblock was already
set to TRUE and thus the technology was not unregistered
- when an rfkill event un-hardblocks the technology, the TechnologyAdded
signal was not sent since the technology was already registered to D-Bus
|
|
Check that the first part of the name is not of zero length before
attempting to calculate the length of the domain part. Also ensure
the domain lenght checking does not run outside of the receive
buffer.
Also add debug messages for ids and lengths in order to pinpoint
any possible problems.
|
|
This fixes 2 issues:
- calling __connman_service_ipconfig_indicate_state() might lead to
restart wispr_portal check, so context should not be freed afterward
but beforehand.
- freeing the context in wispr_manage_message() should not happen since
wispr_manage_message() will return back to wispr_portal_web_result()
where we can still use the context.
Thanks to Julien Massot <jmassot@aldebaran-robotics.com> who reported
the issue and provided logs.
|
|
When autoscan fallback code is started, it sets scanning to true which
in turn marks all networks unavailable except for the ones that are
already connected. When connecting during an ongoing autoscan, the
connection attempt stops autoscan and all unavailable networks are
removed, also the one to be connected.
The fix is to ignore both connected and connecting networks when
marking networks unavailable.
|
|
|
|
The file and function name are printed in debug prints.
|
|
The order of actions is important here.
|
|
We must close the channel when freeing the resolver object,
otherwise we might still receive data when the resolver has been
freed already.
Fixes BMC#25757
|
|
|
|
The file and function names are printed in debug prints.
|
|
Don't override user connected services with the ones selected by the
preferred technology list when SingleConnectedTechnology is enabled.
Do this by checking each connected service sorted in the beginning of
the service list for the userconnect flag.
|
|
Remember whether the service was connected by the user via D-Bus
until the service gets disconnected.
|
|
If SingleConnectedTechnology is enabled in main.conf, disconnect any
previously connected services when the new service enters ready state.
|
|
|
|
|
|
Calling switch_default_service() didn't change the service order since
the services were already sorted that way. Also update the gateway
immediately.
|
|
|
|
Simplify the preferred service selection such that a connected
service is good enough, especially since a connecting service
will also terminate the search for the current preferred one.
|
|
Don't trigger a new autoconnect when neither the default nor the new
service is preferred. Rely on the fact that normal autoconnect selection
mechanism has done the work for us already.
|