Age | Commit message (Collapse) | Author | Files | Lines |
|
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.
|
|
The VPN configuration API is provided by connman-vpnd instead
of connmand.
|
|
|
|
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 ipconfig is marked as fixed when IP address is set to
that ipconfig.
|
|
|
|
The VPN support functionality is moved into connman-vpnd.
|
|
The VPN needs to be able to call the provider disconnect.
|
|
|
|
This allows the correct output when the log functions
are used from separate vpn daemon.
|
|
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.
|
|
Done so that connman_ipaddress_* functions can be used from
separate vpn daemon.
|
|
Service and network code use only interface indexes. Convert the rest of
the code using interface names to use interface indexes instead. The files
affected are:
include/resolver.h
src/connman.h
src/dnsproxy.c
src/resolver.c
src/rtnl.c
src/service.c
src/tethering.c
As the network and service code used interface indexes, the interface
name had to be looked up via a SIOCGIFNAME ioctl when needed. If a service
was removed due to the interface and network being taken down, the lookup
wouldn't work. This caused DNS servers to be left behind with broken sockets
since removing the DNS servers was done using the interface name.
|
|
The DNS proxy code creates and uses a TCP connection only for a single
request at a time. A TCP DNS proxy is added to the end of the server
list, but should not be used for generic requests as the connection
will be closed down after the response to the initial request. Any
other requests sent over the connection will silently disappear.
Add a check to ignore TCP DNS servers for generic lookups.
|
|
If the socket creation failed, continue with the next server.
|
|
Check GIO channel for NULL before using it. Also shut down the GIO channel
so that already pending input will not use the free'd structure.
|
|
The socket is created again on the next request.
Previously, an error condition only caused the event watch to be removed
and then added again on the next request to avoid processing spurious
error events. But in some network environments, the error condition is
caused by an overly aggressive firewall that rejects our UDP packets and
sends an ICMP error packet indicating an unreachable host and/or port.
In some of these cases we can recover by using a different UDP source
port for outgoing requests (i.e. by closing and re-opening the socket).
|
|
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
|
|
|
|
The socket was not closed when err < 0 is true.
|
|
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.
|
|
|
|
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.
|
|
|
|
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.
|