Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
This is based on Guillaume Zajac intial IP pool patches.
|
|
|
|
technology_add_device and technology_add_rfkill should increment
technology refcount. The refcount denotes the total number of devices
and rfkill switches in the technology. Similarly technology_remove_device
and technology_remove_rfkill should decrement technology refcount.
Once the refcount is 0, which means that there are no devices and rfkill
switches in this technology, technology should be freed.
|
|
If we get a rfkill switch before the technology driver was registered we
would lose track of it as we currently ignoed it. Adding a global rfkill
hash table which can keep a track of technologyless switches untill the
driver for them is loaded. If the driver is not compiled in the switches
will remain in the hash but will not be handled by connman.
|
|
If we get a device before the technology driver was registered we
would lose track of it as we ignoed it. Adding a device list which
can keep a track of technologyless devices untill the driver for
them is loaded. If the driver is not compiled in the devices will
remain in the list.
|
|
When a provider indicates error, set the corresponding
service error but don't remove the provider.
|
|
Load all saved providers that have the same type as the provider
driver being registered. While looking through the storage dir
for directory entries starting with 'provider_', the respective
settings file needs to be opened in order to check the type.
Since the settings file is already opened, load all other settings
as well with the help of the previously factored out functions.
|
|
Load provider data in provider_create() if provider_register()
returns success.
|
|
Factor out the creation of a service when given a provider.
|
|
Factor out keyfile loading from connman_provider_load() into
a fuction of its own.
|
|
Don't unnecessarily set provider->name to the value of the provider
identifier in connman_provider_get() since it's going to be reset
immediately to the supplied provider name.
|
|
Implement __connman_storage_get_providers() to fetch all stored
providers.
|
|
|
|
|
|
Set Technology property 'Connected' to true if at least one service
for the Technology is connected; false otherwise.
|
|
|
|
|
|
|
|
|
|
This helps to pin point the exact line/function who is taking the reference.
|
|
As it is described in the manager-api.txt document.
|
|
The cache can become invalid by just disconnecting a service.
In that case we must not access the cache hash.
|
|
|
|
The set_connected() is split to two parts, the disconnect
part is in set_disconnected() function.
|
|
We must not just do connman_provider_unref(provider) as that will
leave the provider to the provider_hash and we will get free memory
access error. We can just remove the provider from the hash and
that will unref the provider automagically.
|
|
|
|
Fixes BMC#24636
|
|
|
|
Since there only user of __connman_notifier_is_enabled()
and __connman_notifier_is_register() was removed with the
technology method calls in Manager, remove the now unnecessary
support functions.
|
|
Remove __connman_technology_enable/disable functions but reuse
their contents for 'Powered' property implementation. As a result
move code around as the new functions are now static.
|
|
Remove EnableTechnology and DisableTechnology D-Bus method calls
from Manager API.
|
|
Because we do not check that origin pointer is not this ipconfig,
it is possible that we might try to unref the ipconfig one time
too many.
Something like this was seen in the log file:
connmand[19208]: src/ipconfig.c:enable_ipv6()
connmand[19208]: src/ipconfig.c:__connman_ipconfig_unref() ipconfig 0x47502f0 refcount 0
connmand[19208]: src/ipconfig.c:__connman_ipconfig_disable() ipconfig 0x47502f0
connmand[19208]: src/ipconfig.c:disable_ipv6()
connmand[19208]: src/ipconfig.c:__connman_ipconfig_unref() ipconfig 0x47502f0 refcount -1
|
|
|
|
The fix b68795352dd5a9ac41eab31c765ade0c88329a6e was only partly
working. We must only take the ref when we are saving stuff
to hash (no need to take ref if we are only modifying value
in the hash). This patch reverts the commit b68795
|
|
We only took reference to network when the network was
created by service. This needs to be changed as the network
might disappear while service is using network pointer.
So now we take network ref when necessary and release it
when service is removed or if underlaying network is changed.
|
|
|
|
|
|
The commit 87318d768c9bf6842ec4dc74f03220ee8b6a9c72 removed
code from service but left the network_created flag intact.
This patch removes the useless flag.
|
|
We do not need to start the RELEASE procedure if we have not
yet contacted the server.
|
|
|
|
We must make sure that user cannot start DHCPv6 many times
for a given network.
|
|
|
|
|
|
|
|
We do not want to wait the answer to release message that
was sent to the DHCPv6 server because the reply from server
might take some time and we must continue the network
disconnect procedure. So we just inform the server that we
are done with the addresses but ignore server reply as there
is nothing to be done anyway after sending the release.
|
|
Connman should not handle technologies whose drivers are not compiled in.
This patch also avoids connman controlling the rfkill switches for
technologies not compiled in.
Fixes BMC#24549.
|
|
No need to assign driver to technolog during driver registration.
|