Arjan van de Ven [Tue, 10 Jan 2012 00:08:53 +0000 (16:08 -0800)]
dnsproxy: Add a "invalidate cache" function
When something changes in the network topology, we need to invalidate the cache.
This first implementation will delete all entries (which could have been done
more efficiently), but in later patches in this series we'll enhance this logic
to only delete the cached data, not the names. With keeping the names,
we can then re-lookup popular data in the new topology.
Arjan van de Ven [Tue, 10 Jan 2012 00:08:49 +0000 (16:08 -0800)]
dnsproxy: Deal nicer with a cache-full situation
Now that we have hit counts for the cache, we can make the cache-full
handling slightly smarter; if we can't make space freeing expired entries,
we can now make space freeing entries that have a very low use count.
Arjan van de Ven [Tue, 10 Jan 2012 00:08:45 +0000 (16:08 -0800)]
dnsproxy: Track cache hit statistics
For various decisions (which entries to prune, which entries to refresh)
and for debugging, it's useful to track how many hits a cache entry
gets.
This patch adds the basic counting for this; the only tricky aspect
is that we serve DNS entries out of the cache, even in case of a miss,
so we need to compensate for that by subtracting a hit first.
Arjan van de Ven [Tue, 10 Jan 2012 00:08:42 +0000 (16:08 -0800)]
dnsproxy: Have a minimum cache TTL
some DNS servers return an extremely short TTL causing all kinds of fun.
This patch ensures that we just enforce a minimum TTL of 30 seconds.
Arjan van de Ven [Tue, 10 Jan 2012 00:08:37 +0000 (16:08 -0800)]
dnsproxy: Cache negative IPv6 entries for the case where we have an IPv4 entry already
It's very common for a client to ask for both IPv4 and IPv6 entries for a name,
however until now, Connman would only cache the IPv4 entry. The result is that the
client app still has the full latency of a lookup, the one for the AAAA record.
This patch will cause Connman to cache negative IPv6 entries, but only if a valid
IPv4 entry is already in the cache. The TTL for this negative entry is set to
the TTL of the existing IPv4 entry, with the rationale that these entries go together
anyway.
Arjan van de Ven [Tue, 10 Jan 2012 00:08:33 +0000 (16:08 -0800)]
dnsproxy: Send the correct TTL to our clients
When we send a cached entry to our clients, it won't do to report the TTL
from the original request to our client. The time that an entry has lived
in our cache needs to be subtracted from the TTL that we report to our client.
This patch adds a function to adjust the TTL of a response that we send,
and uses the newly stored "valid_until" value to compute the remaining TTL.
Arjan van de Ven [Tue, 10 Jan 2012 00:08:29 +0000 (16:08 -0800)]
dnsproxy: Start tracking the end time of the TTL
In order to be able to report an accurate TTL to our client (see next patch
to actually do that), we are going to need to track the end point in time
for this TTL. This also allows us to track separately how long an entry
is valid versus how long we want to cache the entry.
This patch also adds some logic to group end times of the various
cache entries to logical boundaries (10 and 30 seconds); this will
cause cache entries to expire together, which is more efficient in
power/performance, and also later when we add refreshing logic.
Arjan van de Ven [Tue, 10 Jan 2012 00:08:25 +0000 (16:08 -0800)]
dnsproxy: Delete expired cache entries when they expire
The DNS cache has logic to never replace cached data if it already exists.
However, this only works well if we actually delete the data parts
of the cache entries as they expire.
This patch creates a cache_enforce_validity() function, which will
delete the data portion of cache entries if they are expired.
With this in place, consecutive lookups of the same name can get
cached again.
Arjan van de Ven [Tue, 10 Jan 2012 00:08:21 +0000 (16:08 -0800)]
dnsproxy: Make sure "rr" is not NULL
I've caught some crashes with connman where "rr" ended up being NULL;
easy to add a check for this and prevent the crash.
Daniel Wagner [Tue, 10 Jan 2012 12:19:37 +0000 (13:19 +0100)]
test-connman: Remove unsupported passphrase support
Daniel Wagner [Tue, 10 Jan 2012 08:12:23 +0000 (09:12 +0100)]
AUTHORS: Mention Flávio's contributions
Daniel Wagner [Mon, 9 Jan 2012 16:50:48 +0000 (17:50 +0100)]
session: Handle empty D-Bus message
Daniel Wagner [Mon, 9 Jan 2012 16:50:36 +0000 (17:50 +0100)]
provider: Handle empty D-Bus message
Daniel Wagner [Mon, 9 Jan 2012 16:50:20 +0000 (17:50 +0100)]
agent: Handle empty D-Bus message
In case the agent sends wrongly an empty reply.
Jukka Rissanen [Mon, 9 Jan 2012 12:14:22 +0000 (14:14 +0200)]
dnsproxy: Check compress flag properly.
Alok Barsode [Thu, 5 Jan 2012 12:41:13 +0000 (14:41 +0200)]
clock: Emit property changed signal when time property is channged.
Fixes BMC#23740.
Alok Barsode [Thu, 5 Jan 2012 12:41:12 +0000 (14:41 +0200)]
technology: There is no need for add_interface to refcount technology.
Alok Barsode [Thu, 5 Jan 2012 12:41:11 +0000 (14:41 +0200)]
technology: return a reply even if there are no devices in the technology list.
Alok Barsode [Thu, 5 Jan 2012 12:41:10 +0000 (14:41 +0200)]
inotify: Change inotify mask.
Use IN_CLOSE_WRITE instead of IN_MODIFY so the notifier
is called once only after all the changes are written.
Fixes BMC#23741.
Jukka Rissanen [Thu, 5 Jan 2012 10:55:10 +0000 (12:55 +0200)]
device: Disconnect service when disabling device
We should disconnect service instead of disconnecting network
when device is disabled. Otherwise service might still have
a pointer to network that is no longer valid.
Fixes BMC#24592
Jukka Rissanen [Thu, 5 Jan 2012 11:38:15 +0000 (13:38 +0200)]
dhcpv6: Allow address setting in IPv6 auto mode.
The DHCPv6 is used when doing autoconfiguration so we must allow
address setting/unsetting in auto mode.
Jukka Rissanen [Thu, 5 Jan 2012 11:38:14 +0000 (13:38 +0200)]
dhcpv6: Release message implemented.
Jukka Rissanen [Thu, 5 Jan 2012 11:38:13 +0000 (13:38 +0200)]
dhcpv6: Handle address expiration by restarting the stack.
Jukka Rissanen [Thu, 5 Jan 2012 11:38:12 +0000 (13:38 +0200)]
dhcpv6: Rebind message implemented.
Jukka Rissanen [Thu, 5 Jan 2012 11:38:11 +0000 (13:38 +0200)]
dhcpv6: Renew message implemented.
Jukka Rissanen [Thu, 5 Jan 2012 11:38:10 +0000 (13:38 +0200)]
dhcpv6: Request message implemented.
Jukka Rissanen [Thu, 5 Jan 2012 11:38:09 +0000 (13:38 +0200)]
dhcpv6: Initial stateful DHCPv6 support.
This patch contains solicitation message support.
Jukka Rissanen [Thu, 5 Jan 2012 11:38:08 +0000 (13:38 +0200)]
ipconfig: Return IPv6 privacy status.
Jukka Rissanen [Thu, 5 Jan 2012 11:38:07 +0000 (13:38 +0200)]
inet: Get router advertisement prefix option information.
Jukka Rissanen [Thu, 5 Jan 2012 11:38:06 +0000 (13:38 +0200)]
inet: Return router advertisement packet length in callback.
The length of the RA packet must be returned in callback,
otherwise callback cannot check RA options. The prefix length
RA option is needed in stateful DHCPv6 implementation.
Jukka Rissanen [Thu, 5 Jan 2012 09:42:08 +0000 (11:42 +0200)]
dhcpv6: Support stateless DHCPv6
See relevant parts from these RFCs:
RFC 3315 - DHCP for IPv6
RFC 3646 - DNS configuration options for DHCP for IPv6
RFC 3736 - Stateless DHCP service for IPv6
RFC 4075 - SNTP configuration option for DHCPv6
The patch does not support authenticated information messages.
Jukka Rissanen [Thu, 5 Jan 2012 09:42:07 +0000 (11:42 +0200)]
gdhcp: Generic stateless DHCPv6 support.
The patch adds support for information-request DHCPv6 message.
Yu A Wang [Thu, 5 Jan 2012 06:52:34 +0000 (01:52 -0500)]
ofono: Fix network name is null for CDMA network
Yu A Wang [Thu, 5 Jan 2012 06:52:26 +0000 (01:52 -0500)]
ofono: Fix no ip settings for CDMA network
When we add cdma network, we alloc the context for the modem, due
to add_network logic needs, then we need extract ip settings even
context is not NULL
Yu A Wang [Thu, 5 Jan 2012 06:52:14 +0000 (01:52 -0500)]
ofono: Create device for CDMA modem
For cdma modem, the property change for serial may after interfaces,
then we need to create device for cdma modem when we get serial property
Patrik Flykt [Thu, 5 Jan 2012 08:14:22 +0000 (10:14 +0200)]
manager: Remove manager 'Technologies' property
Remove 'Technologies' property from Manager API and the
code updating the property.
Patrik Flykt [Thu, 5 Jan 2012 08:14:21 +0000 (10:14 +0200)]
technology: Implement Manager API GetTechnologies method call
Patrik Flykt [Thu, 5 Jan 2012 08:14:20 +0000 (10:14 +0200)]
technology: Add 'TechnologyAdded' and 'TechnologyRemoved' signals
Jukka Rissanen [Tue, 3 Jan 2012 12:36:28 +0000 (14:36 +0200)]
service: Return all system defined nameservers when asked
The connman_service_get_nameservers() is changed to return
all system defined nameservers. This means that the function
now returns an allocated array of all nameservers and caller
must deallocate the returned array.
The change is needed so that we can combine the nameservers
that are set by DHCP code and the IPv6 nameservers that are
set by router advertisements.
Jukka Rissanen [Tue, 3 Jan 2012 12:36:27 +0000 (14:36 +0200)]
wispr: Retry online check for IPv6
Because IPv6 RA messages can come at any point when connection is
established, we might do wispr check before possible IPv6 DNS RA
is received so in that case wispr check could fail.
If wispr check fails for IPv6 we try to do the check once (after
waiting one second timeout) in a hope that system is configured
properly during that period.
Jukka Rissanen [Tue, 3 Jan 2012 12:36:26 +0000 (14:36 +0200)]
ipconfig: Have separate callbacks for route changes.
Route changes should not trigger ip_bound or ip_release callbacks
in service.c as that can cause too early transition into IPv6 ready state.
The ip_bound (in __connman_ipconfig_newaddr()) and ip_release (in
__connman_ipconfig_deladdr()) are enough to trigger a transition
in IPv6 state.
This also prevents too many notifier calls in session as we only
notify session when address changes.
Jukka Rissanen [Tue, 3 Jan 2012 12:31:28 +0000 (14:31 +0200)]
ipconfig: Address list for duplicates does not need gateway info.
The ipdevice address list is only used for detecting duplicate
addresses so there is no need to copy the gateway information
into the list. The same gateway data was actually used in every
list element which is not a correct thing to do as there would
be different gateways in IPv4 and IPv6 anyway.
Flávio Ceolin [Thu, 29 Dec 2011 17:48:40 +0000 (15:48 -0200)]
iptables: Small improvements on ipatables_init()
Just returning NULL instead of go to "err:" when
"table" is NULL, also removing a duplicated
g_free(module).
It's avoiding, at least, a "goto" + "g_free()" +
"table_cleanup()".
Tomasz Bursztyka [Thu, 29 Dec 2011 11:02:22 +0000 (13:02 +0200)]
wispr: using only the nameservers from requested service
Tomasz Bursztyka [Thu, 29 Dec 2011 11:02:21 +0000 (13:02 +0200)]
wispr: fixing a possible memory leak if interface index cannot be retrieved
Flavio Ceolin [Thu, 5 Jan 2012 10:01:45 +0000 (11:01 +0100)]
storage: Using the right free func
Fixing a segfault when it fails to store an information,
just using g_error_free instead of g_free.
Patrik Flykt [Thu, 22 Dec 2011 13:35:49 +0000 (15:35 +0200)]
manager: Remove DefaultTechnology and associated function
Patrik Flykt [Thu, 22 Dec 2011 13:35:48 +0000 (15:35 +0200)]
manager: Remove ConnectedTechnologies and associated function
Patrik Flykt [Thu, 22 Dec 2011 13:35:47 +0000 (15:35 +0200)]
manager: Remove EnabledTechnologies and associated function
Patrik Flykt [Thu, 22 Dec 2011 13:35:46 +0000 (15:35 +0200)]
manager: Remove AvailableTechnologies and associated function
Patrik Flykt [Wed, 21 Dec 2011 12:48:27 +0000 (14:48 +0200)]
service: Don't send 'wpa' or 'rsn' as alternate values for 'psk'
Patrik Flykt [Wed, 21 Dec 2011 12:48:26 +0000 (14:48 +0200)]
service: Remove Passphrase property
Patrik Flykt [Wed, 21 Dec 2011 12:48:25 +0000 (14:48 +0200)]
service: Remove PassphraseRequired property
Patrik Flykt [Wed, 21 Dec 2011 12:48:24 +0000 (14:48 +0200)]
service: Remove LoginRequired property
Remove LoginRequired property and associated functions
Yu A Wang [Wed, 21 Dec 2011 07:14:58 +0000 (02:14 -0500)]
wifi: Set interface to NULL in interface_removed
Currently we set wifi interface to NULL in interface_remove_callback.
commit
80e2e08b4887c4e133d3ca7d42ac844fbb974bb8 avoid to use stale
pointer by get wifi pointer through interface, but interface already
removed and should be NULL, then the interface value in wifi will never
set to NULL and will be a wild pointer. Which may cause connman crash
when we connect wifi service after we disable the wifi. This issue does
not exist in latest connman due to connect-service method is removed.
we can set wifi interface in interface_removed which called in remove_interface
in supplicant.c, because after interface is freed in supplicant, we should not
hold this pointer anymore.
Fixes BMC#24364
Thierry Boureille [Mon, 19 Dec 2011 02:44:48 +0000 (03:44 +0100)]
gweb: Add null pointer checks to avoid connman unstability
Fix null pointer derefencing in "free_session" and
"process_send_buffer" functions
Daniel Wagner [Fri, 23 Dec 2011 08:58:28 +0000 (09:58 +0100)]
supplicant: Make create_name() UTF-8 aware
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.
Daniel Wagner [Wed, 21 Dec 2011 16:12:20 +0000 (17:12 +0100)]
technology: Return technology name Cellular instead 3G
Daniel Wagner [Thu, 22 Dec 2011 10:23:29 +0000 (11:23 +0100)]
storage: Remove useless comments
No additional information in the comments.
Daniel Wagner [Thu, 22 Dec 2011 10:21:22 +0000 (11:21 +0100)]
storage: Use technology name Cellular instead 3G
Daniel Wagner [Wed, 21 Dec 2011 16:11:10 +0000 (17:11 +0100)]
doc: Change bearer name to cellular instead 3G
Daniel Wagner [Wed, 21 Dec 2011 15:55:49 +0000 (16:55 +0100)]
service: Remove file index check in setup_ipv4/v6config()
This is needed for plugins that haven't yet set their
ipconfig layer, due to not being able to get a network index.
Daniel Wagner [Wed, 21 Dec 2011 15:53:34 +0000 (16:53 +0100)]
ofono: Create ipconfig layer when creating network
Create the ipconfig layer before trying to connect. Withouth
the ipconfig layer the core is not ready to process errors.
Daniel Wagner [Wed, 21 Dec 2011 13:40:02 +0000 (14:40 +0100)]
ofono: Discover already online modems
If a modem is already online there will be no updates
on the interfaces and therefore no triggers to do the
complete discovering.
Daniel Wagner [Wed, 21 Dec 2011 13:19:30 +0000 (14:19 +0100)]
ofono: Set device powered state
Daniel Wagner [Wed, 21 Dec 2011 13:06:15 +0000 (14:06 +0100)]
ofono: Handle add/remove of API separatly
Simplify the way the interface apperance and disapperance are
handled and write them explicitly out. This is not extremly fast
or elegant but it is much more readable and maintainable.
Also unregister the network object when the modem goes offline.
Fixes BMC#24432
Daniel Wagner [Wed, 21 Dec 2011 13:02:00 +0000 (14:02 +0100)]
ofono: Create device when powered up
Instead of directly online we let the core decide
when to set the modem online therefore we have
to create the connman_device a bit earlier at
register it.
Daniel Wagner [Wed, 21 Dec 2011 09:11:13 +0000 (10:11 +0100)]
ofono: Refactor sim_changed()
to use connection_manager_init().
Daniel Wagner [Wed, 21 Dec 2011 09:09:19 +0000 (10:09 +0100)]
ofono: Enable and disable the modem through online interface
Daniel Wagner [Tue, 20 Dec 2011 17:39:15 +0000 (18:39 +0100)]
ofono: Ignore non-related interface updates
Only trigger update code if there was a change in
the interface we are interested in.
Daniel Wagner [Tue, 20 Dec 2011 17:01:50 +0000 (18:01 +0100)]
ofono: Merge modem_set_un/powered()
Also follow the patternt that we have only a set function
with an argument for the value tos set.
Daniel Wagner [Tue, 20 Dec 2011 16:55:10 +0000 (17:55 +0100)]
ofono: Remove unused set_cm_powered
Also follow the patternt that we have only a set function
with an argument for the value tos set.
Daniel Wagner [Wed, 21 Dec 2011 09:05:57 +0000 (10:05 +0100)]
ofono: Remove unused set_online
Also follow the patternt that we have only a set function
with an argument for the value tos set.
Daniel Wagner [Tue, 20 Dec 2011 16:42:52 +0000 (17:42 +0100)]
ofono: Merge cmda_cm_set_powered()/cmda_cm_shutdown()
Follow the pattern that we have only a set function with
an argument for the value to set.
Daniel Wagner [Tue, 20 Dec 2011 17:31:30 +0000 (18:31 +0100)]
ofono: Merge context_set_in/active()
Follow the pattern that we have only a set function with
an argument for the value to set.
Daniel Wagner [Tue, 20 Dec 2011 15:57:27 +0000 (16:57 +0100)]
ofono: Refactore IMSI update
Streamline Property handling code with the rest of the plugin.
Samuel Ortiz [Tue, 20 Dec 2011 18:21:18 +0000 (19:21 +0100)]
dnsproxy: Build failure fix
"The format modifier for size_t is %zd." (Marcel, 20/12/2011)
Ronald Tessier [Tue, 6 Dec 2011 16:46:29 +0000 (17:46 +0100)]
gweb: Extend gweb to send file
Jukka Rissanen [Fri, 9 Dec 2011 08:42:22 +0000 (10:42 +0200)]
ipconfig: Make IPv6 method AUTO by default
This is done so that if the method is not found
in settings file, then we enable IPv6 by default.
Yu A Wang [Thu, 8 Dec 2011 07:31:15 +0000 (02:31 -0500)]
wifi: Set wifi device powered FALSE when removed
In interface_removed function, connman_device_set_powered may not be
called due to wifi->device is freed before supplicant callback. This
happens when we remove the second wifi device. This may lead technology
refcount inbalance, which could potentially prevent the wifi technology to
be enabled again.
Yu A Wang [Thu, 8 Dec 2011 07:31:05 +0000 (02:31 -0500)]
gdhcp: Check listerner_watch before remove it
Fixed following error:
connmand[4547]: src/dhcp.c:dhcp_release() dhcp 0x8c6d3e8
connmand[4547]: DHCP: switch listening mode (3 ==> 0)
(connmand:4547): GLib-CRITICAL **: g_source_remove: assertion `tag > 0' failed
Jukka Rissanen [Fri, 16 Dec 2011 14:50:18 +0000 (15:50 +0100)]
TODO: Remove DNS caching entry
Jukka Rissanen [Thu, 8 Dec 2011 14:26:31 +0000 (16:26 +0200)]
doc: valgrind suppression file
The suppression file tries to ignore the problems
in glib and dbus libraries so that we can concentrate to real
problems in connman.
Jukka Rissanen [Thu, 8 Dec 2011 14:18:49 +0000 (16:18 +0200)]
resolver: Fix memory leak when resolver is stopped
Jukka Rissanen [Thu, 8 Dec 2011 14:15:42 +0000 (16:15 +0200)]
dnsproxy: Implement A and AAAA DNS record caching
Daniel Wagner [Thu, 15 Dec 2011 15:35:47 +0000 (16:35 +0100)]
ofono: Set regulatory domain
Fixes BMC#24430
Daniel Wagner [Thu, 15 Dec 2011 15:17:17 +0000 (16:17 +0100)]
ofono: Fix cleanup of connman_manager_init()
The return value has to be boolean.
Daniel Wagner [Thu, 15 Dec 2011 15:04:37 +0000 (16:04 +0100)]
ofono: Remove unnecessary brackets
Guillaume Zajac [Thu, 15 Dec 2011 13:34:27 +0000 (14:34 +0100)]
ofono: Add cdma-connman relative functions
Guillaume Zajac [Thu, 15 Dec 2011 13:34:26 +0000 (14:34 +0100)]
ofono: Add cdma-netreg relative functions
Daniel Wagner [Thu, 15 Dec 2011 14:17:47 +0000 (15:17 +0100)]
ofono: Cleanup connection_manager_init()
Guillaume Zajac [Thu, 15 Dec 2011 13:34:29 +0000 (14:34 +0100)]
ofono: Factorize Connection Managers intialization
Guillaume Zajac [Thu, 15 Dec 2011 13:34:28 +0000 (14:34 +0100)]
ofono: Add support for CDMA modems
Guillaume Zajac [Thu, 15 Dec 2011 13:34:25 +0000 (14:34 +0100)]
ofono: Add cdma-connman power and shutdown API
Guillaume Zajac [Thu, 15 Dec 2011 13:34:24 +0000 (14:34 +0100)]
ofono: Add CDMA interfaces extraction
Daniel Wagner [Mon, 12 Dec 2011 17:58:40 +0000 (18:58 +0100)]
ofono: Remove unnecessary brackets
A left over from the refactoring.
Daniel Wagner [Mon, 12 Dec 2011 17:57:19 +0000 (18:57 +0100)]
ofono: Move cm powered update into a function
Daniel Wagner [Mon, 12 Dec 2011 17:57:00 +0000 (18:57 +0100)]
ofono: Move cm attached update into a function
Daniel Wagner [Mon, 12 Dec 2011 17:41:33 +0000 (18:41 +0100)]
network: Remove connman_network_set_roaming
The current code uses connman_network_set_bool(network, "Roaming", value).
Daniel Wagner [Mon, 12 Dec 2011 17:39:52 +0000 (18:39 +0100)]
ofono: Use generic setter instead connman_network_set_roaming