platform/upstream/connman.git
11 years agoREADME: Update information about wpa_supplicant configuration
Tomasz Bursztyka [Fri, 17 May 2013 11:45:00 +0000 (14:45 +0300)]
README: Update information about wpa_supplicant configuration

11 years agoTODO: DHCPv6 DECLINE message support
Jukka Rissanen [Thu, 16 May 2013 09:22:24 +0000 (12:22 +0300)]
TODO: DHCPv6 DECLINE message support

11 years agogdhcp: Handle dhcp_client->type == G_DHCP_IPV4LL
Justin Maggard [Mon, 13 May 2013 20:13:35 +0000 (13:13 -0700)]
gdhcp: Handle dhcp_client->type == G_DHCP_IPV4LL

Clean up several places where dhcp_client->type == G_DHCP_IPV4LL is unhandled.

11 years agoshared: Add helper for looking up debugfs mount point
Marcel Holtmann [Sun, 12 May 2013 07:17:17 +0000 (09:17 +0200)]
shared: Add helper for looking up debugfs mount point

11 years agogdbus: Fix using NULL DBusPendingCall when disconnected from D-Bus
Anderson Lizardo [Sat, 4 May 2013 19:39:43 +0000 (15:39 -0400)]
gdbus: Fix using NULL DBusPendingCall when disconnected from D-Bus

From D-Bus documentation for dbus_connection_send_with_reply():

"Warning: if the connection is disconnected or you try to send Unix file
descriptors on a connection that does not support them, the
DBusPendingCall will be set to NULL, so be careful with this."

Fix these errors when killing D-Bus daemon with the client still
running:

process 5712: arguments to dbus_pending_call_set_notify() were
incorrect, assertion "pending != NULL" failed in file
../../dbus/dbus-pending-call.c line 596.
This is normally a bug in some application using the D-Bus library.
process 5712: arguments to dbus_pending_call_unref() were incorrect,
assertion "pending != NULL" failed in file
../../dbus/dbus-pending-call.c line 572.
This is normally a bug in some application using the D-Bus library.

11 years agogdbus: Fix segfault when D-Bus daemon exits
Anderson Lizardo [Sat, 4 May 2013 19:39:42 +0000 (15:39 -0400)]
gdbus: Fix segfault when D-Bus daemon exits

Fix this crash if D-Bus exits while the client is still connected to it:

==5570== Invalid read of size 1
==5570==    at 0x402D28E: strcmp (in
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==5570==    by 0x4070E22: g_str_equal (ghash.c:1704)
==5570==    by 0x8055F61: message_filter (client.c:1123)
==5570==    by 0x4141500: dbus_connection_dispatch (in
/lib/i386-linux-gnu/libdbus-1.so.3.5.8)
==5570==    by 0x80506F7: message_dispatch (mainloop.c:76)
==5570==    by 0x4081A7E: g_timeout_dispatch (gmain.c:3882)
==5570==    by 0x4080D85: g_main_context_dispatch (gmain.c:2539)
==5570==    by 0x4081124: g_main_context_iterate.isra.21 (gmain.c:3146)
==5570==    by 0x408156A: g_main_loop_run (gmain.c:3340)
==5570==    by 0x41BF4D2: (below main) (libc-start.c:226)
==5570==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==5570==
==5570==

11 years agoclient: Do service name syntax check when a name is specified
Patrik Flykt [Wed, 8 May 2013 06:59:23 +0000 (09:59 +0300)]
client: Do service name syntax check when a name is specified

11 years agoFix gcc compiler warning with -Wformat-security.
Justin Maggard [Tue, 7 May 2013 22:34:42 +0000 (15:34 -0700)]
Fix gcc compiler warning with -Wformat-security.

Cosmetic fix.

11 years agoRelease 1.14 1.14
Marcel Holtmann [Tue, 7 May 2013 08:21:39 +0000 (01:21 -0700)]
Release 1.14

11 years agoTODO: Update connmanctl entry
Patrik Flykt [Mon, 6 May 2013 13:02:52 +0000 (16:02 +0300)]
TODO: Update connmanctl entry

Agent mode is mostly done, update the entry with Session mode and VPN
Agent support.

11 years agoclient: Check that strings passed to D-Bus to contain valid chars
Jukka Rissanen [Mon, 6 May 2013 12:18:27 +0000 (15:18 +0300)]
client: Check that strings passed to D-Bus to contain valid chars

D-Bus aborts if we feed invalid characters to it. So do some sanity
check before that.

11 years agoclient: Newline missing after printing scan error message
Jukka Rissanen [Mon, 6 May 2013 11:38:00 +0000 (14:38 +0300)]
client: Newline missing after printing scan error message

11 years agodhcpv6: Implement CONFIRM message support
Jukka Rissanen [Mon, 6 May 2013 10:06:34 +0000 (13:06 +0300)]
dhcpv6: Implement CONFIRM message support

See RFC 3315 Chapter 18.1.2. Creation and Transmission of Confirm
Messages for details

11 years agodhcpv6: Remember the last used IPv6 address
Jukka Rissanen [Mon, 6 May 2013 10:06:33 +0000 (13:06 +0300)]
dhcpv6: Remember the last used IPv6 address

This is required so that we can decide whether to send CONFIRM
or SOLICITATION message to server.

11 years agoipconfig: Save last used DHCPv6 address
Jukka Rissanen [Mon, 6 May 2013 10:06:32 +0000 (13:06 +0300)]
ipconfig: Save last used DHCPv6 address

This is needed when implementing CONFIRM message decision logic.

11 years agodhcpv6: Added initial MRD support
Jukka Rissanen [Mon, 6 May 2013 10:06:31 +0000 (13:06 +0300)]
dhcpv6: Added initial MRD support

MRD (Maximum Retransmission Duration) is the total duration of
of retransmission of the message. This will be used when sending
Confirm message.

11 years agogdhcp: Initialize message status code early
Jukka Rissanen [Mon, 6 May 2013 10:06:30 +0000 (13:06 +0300)]
gdhcp: Initialize message status code early

The message status code was initialized too late i.e., after
it was set so we lost the status code. This problem was seen
with wide-dhcpv6 server.

11 years agoclient: Fix for handling an unset callback
Patrik Flykt [Mon, 6 May 2013 10:28:32 +0000 (13:28 +0300)]
client: Fix for handling an unset callback

If there is no callback set, don't try to call readline function.

11 years agoclient: Fixes for handling Agent messages
Patrik Flykt [Mon, 6 May 2013 10:24:00 +0000 (13:24 +0300)]
client: Fixes for handling Agent messages

Properly handle agent confirmation input, unset the prompt when RequestInput
processing ends and set the passphrase only if it contains some text.

11 years agoman: Update connman.conf.5 manual page to use TetheringTechnologies
Patrik Flykt [Fri, 3 May 2013 14:15:11 +0000 (17:15 +0300)]
man: Update connman.conf.5 manual page to use TetheringTechnologies

11 years agomain: Rename AllowedTetheringTechnologies to TetheringTechnologies
Patrik Flykt [Mon, 29 Apr 2013 06:21:45 +0000 (09:21 +0300)]
main: Rename AllowedTetheringTechnologies to TetheringTechnologies

11 years agogdbus: Fix calling GetManagedObjects twice in a row
Luiz Augusto von Dentz [Thu, 18 Apr 2013 20:34:03 +0000 (23:34 +0300)]
gdbus: Fix calling GetManagedObjects twice in a row

Calling g_dbus_client_new followed by g_dbus_client_set_proxy_handlers
cause two calls to GetManagedObjects in a row as GetNameOwner reply is
asyncronously it triggers the second call because the handlers have
been set by g_dbus_client_set_proxy_handlers.

11 years agoAUTHORS: Mention Yann's contributions
Patrik Flykt [Fri, 3 May 2013 14:22:11 +0000 (17:22 +0300)]
AUTHORS: Mention Yann's contributions

11 years agoclient: Initial RequestInput handling support
Patrik Flykt [Fri, 3 May 2013 11:35:36 +0000 (14:35 +0300)]
client: Initial RequestInput handling support

When receiving a RequestInput Agent API D-Bus call, ask the input in a somewhat
logical order from the user with user names first and passwords next. If a
passphrase is entered, ignore any WPS pin code requests. Prepare for passphrase
length checking by going through the RequestInput message to get the 'Type'
argument.

11 years agoclient: Add ReportError handling
Patrik Flykt [Mon, 29 Apr 2013 11:52:42 +0000 (14:52 +0300)]
client: Add ReportError handling

Report error and wait for the user to reply with yes/no.

11 years agoclient: Add RequestBrowser handling
Patrik Flykt [Mon, 29 Apr 2013 10:06:57 +0000 (13:06 +0300)]
client: Add RequestBrowser handling

Print out the RequestBrowser URL and wait for user input to proced. Add a
helper function for getting a yes/no confirmation from the user and another
one for getting the last part of the service object path.

11 years agoclient: Implement Agent Release and Cancel method calls
Patrik Flykt [Thu, 25 Apr 2013 13:15:45 +0000 (16:15 +0300)]
client: Implement Agent Release and Cancel method calls

Unref the saved Agent D-Bus message on Release and Cancel. In response to the
Release method call unnregister Agent interface and quit if in non-interactive
mode.

11 years agoclient: Add command mode and agent mode helper functions
Patrik Flykt [Wed, 24 Apr 2013 10:24:16 +0000 (13:24 +0300)]
client: Add command mode and agent mode helper functions

In command mode remember history and do command completion, in agent mode
do neither. Enable saving and restoring of the readline prompt and add
the GIOChannel watch also for non-interactive mode.

11 years agoclient: Add agent command
Patrik Flykt [Wed, 24 Apr 2013 10:25:45 +0000 (13:25 +0300)]
client: Add agent command

11 years agoclient: Add support for registering and unregistering an agent
Patrik Flykt [Thu, 25 Apr 2013 12:29:56 +0000 (15:29 +0300)]
client: Add support for registering and unregistering an agent

Add agent .h and .c files containing registering and unregistering functionality.

11 years agoclient: Enable method call return to exit or continue running
Patrik Flykt [Thu, 25 Apr 2013 13:49:16 +0000 (16:49 +0300)]
client: Enable method call return to exit or continue running

Enable a client method call return function to exit or continue running when
in non-interactive mode. When a connmanctl_dbus_method_return_func_t returns
-EINPROGRESS in non-interactive mode, the command line client is kept running
even after the method call has been processed.

The command line client needs to keep running after a successful Agent
registration in order to process Agent method calls. Also enabling tethering
in non-interactive mode needs the client executing until SSID, passphrase and
tethering mode have been set.

11 years agoclient: Make dbus helper function variable const char *
Patrik Flykt [Fri, 3 May 2013 09:53:52 +0000 (12:53 +0300)]
client: Make dbus helper function variable const char *

11 years agodhcpv6: Add elapsed time option to sent messages
Jukka Rissanen [Mon, 29 Apr 2013 09:39:11 +0000 (12:39 +0300)]
dhcpv6: Add elapsed time option to sent messages

A mandatory elapsed time option was missing from the sent
DHCPv6 messages. See RFC 3315 chapter 22.9 for details.

11 years agotechnology: Disable tethering when device disappears
Jukka Rissanen [Fri, 26 Apr 2013 12:51:33 +0000 (15:51 +0300)]
technology: Disable tethering when device disappears

If tethering is active when device is removed, then shutdown
tethering cleanly so that tether interface and bridge are
properly removed.

11 years agodnsproxy: Do not unref g_io_channel if we know it is null
Jukka Rissanen [Fri, 26 Apr 2013 12:51:16 +0000 (15:51 +0300)]
dnsproxy: Do not unref g_io_channel if we know it is null

Currently tethering does not support IPv6 so its listener is
not created and is null. This will cause following output

connmand[18363]: src/dnsproxy.c:destroy_tcp_listener() index 31
(connmand:18363): GLib-CRITICAL **: g_io_channel_unref: assertion `channel != NULL' failed
connmand[18363]: src/dnsproxy.c:destroy_udp_listener() index 31
(connmand:18363): GLib-CRITICAL **: g_io_channel_unref: assertion `channel != NULL' failed

11 years agoclient: Fix up wrongly included typedef
Patrik Flykt [Fri, 26 Apr 2013 10:57:39 +0000 (13:57 +0300)]
client: Fix up wrongly included typedef

11 years agoclient: Remove unneeded members from structs
Patrik Flykt [Fri, 26 Apr 2013 10:57:38 +0000 (13:57 +0300)]
client: Remove unneeded members from structs

Remove now obsolete memebers from the option struct and instead add a description
field. Also remove the now unnecessary include.

11 years agoclient: Move commands around to more logical places in the table
Patrik Flykt [Fri, 26 Apr 2013 10:57:37 +0000 (13:57 +0300)]
client: Move commands around to more logical places in the table

11 years agocore: Print timezone information if available from server
Marcel Holtmann [Sun, 28 Apr 2013 22:11:58 +0000 (15:11 -0700)]
core: Print timezone information if available from server

11 years agodnsproxy: Conditional jump depends on uninitialized value
Jukka Rissanen [Fri, 26 Apr 2013 10:12:52 +0000 (13:12 +0300)]
dnsproxy: Conditional jump depends on uninitialized value

This came from Daniel when running ConnMan using valgrind

==20635== Conditional jump or move depends on uninitialised value(s)
==20635==    at 0x49ECF4: get_name (dnsproxy.c:867)
==20635==    by 0x49F3F7: parse_response (dnsproxy.c:1096)
==20635==    by 0x49FD40: cache_update (dnsproxy.c:1410)
==20635==    by 0x4A0FF3: forward_dns_reply (dnsproxy.c:1803)
==20635==    by 0x4A15D9: udp_server_event (dnsproxy.c:1912)
==20635==    by 0x3331E47A54: g_main_context_dispatch (gmain.c:2715)
==20635==    by 0x3331E47D87: g_main_context_iterate.isra.24 (gmain.c:3290)
==20635==    by 0x3331E48181: g_main_loop_run (gmain.c:3484)
==20635==    by 0x44B600: main (main.c:670)

11 years agobuild: Install connmand and connman.conf manual pages
Jukka Rissanen [Fri, 26 Apr 2013 09:54:25 +0000 (12:54 +0300)]
build: Install connmand and connman.conf manual pages

11 years agoman: Update connman.conf.5 manual page
Jukka Rissanen [Fri, 26 Apr 2013 09:54:24 +0000 (12:54 +0300)]
man: Update connman.conf.5 manual page

Updated PreferredTechnologies description.
Added SingleConnectedTechnology, AllowedTetheringTechnologies and
PersistentTetheringMode descriptions.

11 years agomake: Add main.conf example file into dist tar ball
Jukka Rissanen [Tue, 23 Apr 2013 10:06:31 +0000 (13:06 +0300)]
make: Add main.conf example file into dist tar ball

11 years agodhcpv6: Fix memory leak
Jukka Rissanen [Fri, 26 Apr 2013 06:51:33 +0000 (09:51 +0300)]
dhcpv6: Fix memory leak

The received IP address was not freed.

11 years agogdhcp: The last option in a message was not parsed correctly
Jukka Rissanen [Fri, 26 Apr 2013 06:51:32 +0000 (09:51 +0300)]
gdhcp: The last option in a message was not parsed correctly

If the desired option was last one in the message, then it was
lost because the remaining data calculation was wrong.

11 years agodhcpv6: Retransmit a message with same transaction id
Jukka Rissanen [Fri, 26 Apr 2013 06:51:31 +0000 (09:51 +0300)]
dhcpv6: Retransmit a message with same transaction id

Make sure we do not create a new transaction id for a message
when it needs to be retransmitted.

11 years agogdhcp: Do not change the transaction id if retransmitting
Jukka Rissanen [Fri, 26 Apr 2013 06:51:30 +0000 (09:51 +0300)]
gdhcp: Do not change the transaction id if retransmitting

As requested in RFC 3315 chapter 15.1, a client MUST leave
the transaction id unchanged in retransmissions of a message.

11 years agogdhcp: Add helper functions for message retransmission
Jukka Rissanen [Fri, 26 Apr 2013 06:51:29 +0000 (09:51 +0300)]
gdhcp: Add helper functions for message retransmission

11 years agogdhcp: Add debug print for transaction id
Jukka Rissanen [Fri, 26 Apr 2013 06:51:28 +0000 (09:51 +0300)]
gdhcp: Add debug print for transaction id

Print transaction id of sent and received messages so that it is
easier to match the packets.

11 years agoTODO: Update type definitions cleanup task
Patrik Flykt [Tue, 23 Apr 2013 10:05:33 +0000 (13:05 +0300)]
TODO: Update type definitions cleanup task

11 years agoinclude: Remove definition for connman_uint16_t
Patrik Flykt [Tue, 23 Apr 2013 10:05:32 +0000 (13:05 +0300)]
include: Remove definition for connman_uint16_t

11 years agonetwork: Replace connman_uint16_t with uint16_t
Patrik Flykt [Tue, 23 Apr 2013 10:05:31 +0000 (13:05 +0300)]
network: Replace connman_uint16_t with uint16_t

11 years agoinclude: Remove definition for connman_uint8_t
Patrik Flykt [Tue, 23 Apr 2013 10:05:30 +0000 (13:05 +0300)]
include: Remove definition for connman_uint8_t

11 years agonetwork: Replace connman_uint8_t with uint8_t
Patrik Flykt [Tue, 23 Apr 2013 10:05:29 +0000 (13:05 +0300)]
network: Replace connman_uint8_t with uint8_t

11 years agoservice: Replace connman_uint8_t with uint8_t
Patrik Flykt [Tue, 23 Apr 2013 10:05:28 +0000 (13:05 +0300)]
service: Replace connman_uint8_t with uint8_t

11 years agotethering: Use fallback nameservers if dnsproxy is not in use
Jukka Rissanen [Tue, 23 Apr 2013 15:38:34 +0000 (18:38 +0300)]
tethering: Use fallback nameservers if dnsproxy is not in use

If user has disabled dnsproxy with -r option, then fallback to
user specified nameservers instead of using the Google one.

11 years agodnsproxy: Return proper return code if listener_table is missing
Jukka Rissanen [Tue, 23 Apr 2013 15:38:33 +0000 (18:38 +0300)]
dnsproxy: Return proper return code if listener_table is missing

The listener_table can be NULL if we have started connman with -r
option. Because we return < 0 value to caller in this case,
the caller, e.g. the tethering code, has a possibility to change
its functionality, e.g. the tethering code can fall back to some
other DNS servers.

11 years agotechnology: Auto start tethering if enabled and configured
Jukka Rissanen [Thu, 25 Apr 2013 13:24:57 +0000 (16:24 +0300)]
technology: Auto start tethering if enabled and configured

If the user has enabled persistent tethering mode in main.conf, then
try to activate tethering when technology is re-enabled, or we are
returning from offline mode, or after the device has rebooted.

11 years agomain: Add support for PersistentTetheringMode configuration variable
Jukka Rissanen [Thu, 25 Apr 2013 13:24:56 +0000 (16:24 +0300)]
main: Add support for PersistentTetheringMode configuration variable

11 years agoconf: Add description of PersistentTetheringMode
Jukka Rissanen [Thu, 25 Apr 2013 13:24:55 +0000 (16:24 +0300)]
conf: Add description of PersistentTetheringMode

11 years agoethernet: Add tethering support
Jukka Rissanen [Thu, 25 Apr 2013 11:47:51 +0000 (14:47 +0300)]
ethernet: Add tethering support

11 years agortnl: Interface was added to technology too early
Jukka Rissanen [Thu, 25 Apr 2013 11:47:50 +0000 (14:47 +0300)]
rtnl: Interface was added to technology too early

The __connman_technology_add_interface() needs to be called
after we have created the technology which is done by rtnl->newlink()
callback. If this is done the old way, the ethernet devices
will not get their interfaces set properly.

11 years agodevice: Add support functions needed by ethernet tethering
Jukka Rissanen [Thu, 25 Apr 2013 11:47:49 +0000 (14:47 +0300)]
device: Add support functions needed by ethernet tethering

11 years agomain: Add support for AllowedTetheringTechnologies configuration variable
Jukka Rissanen [Thu, 25 Apr 2013 11:47:48 +0000 (14:47 +0300)]
main: Add support for AllowedTetheringTechnologies configuration variable

11 years agoconf: Add description of AllowedTetheringTechnologies
Jukka Rissanen [Thu, 25 Apr 2013 11:47:47 +0000 (14:47 +0300)]
conf: Add description of AllowedTetheringTechnologies

11 years agoclient: Trim off spaces from user input
Patrik Flykt [Thu, 18 Apr 2013 12:28:22 +0000 (15:28 +0300)]
client: Trim off spaces from user input

After splitting the input string into components, create a new array holding
the non-zero substrings as input for the commands. Thus the input can start
and end as well as divide its separate parts by any number spaces.

11 years agoclient: Add command completion
Patrik Flykt [Thu, 18 Apr 2013 12:28:21 +0000 (15:28 +0300)]
client: Add command completion

Add completion support for connmanctl commands.

11 years agoclient: Follow coding style
Patrik Flykt [Thu, 18 Apr 2013 07:00:00 +0000 (10:00 +0300)]
client: Follow coding style

Follow coding style and use __connmanctl prefix for the commands() function.

11 years agoclient: Add support for tethering
Patrik Flykt [Thu, 18 Apr 2013 06:39:17 +0000 (09:39 +0300)]
client: Add support for tethering

Add tethering support. For WiFi also set the SSID and passphrase if they
have been specified on the command line. Check that setting both SSID and
passphrase succeed before trying to enable tethering.

After successfully setting SSID and passphrase for WiFi, use the boolean
value parsing helper function return value to decide whether WiFi tethering
is to be enabled, disabled or not modified.

Fixes BMC#25886

11 years agodbus: Add connman_dbus_get_connnection_unix_user()
Daniel Wagner [Thu, 18 Apr 2013 07:07:27 +0000 (09:07 +0200)]
dbus: Add connman_dbus_get_connnection_unix_user()

The UID is fetched via org.freedesktop.DBus.GetConnectionUnixUser D-Bus
method call.

11 years agodbus: Refactor callback helper struct
Daniel Wagner [Thu, 18 Apr 2013 07:07:26 +0000 (09:07 +0200)]
dbus: Refactor callback helper struct

The helper struct will be used by a new dbus function which uses
a different callback signature. Therefore, we need to use a
void pointer for storing the callback.

11 years agosession: Do not fail when creating default policy configuration
Daniel Wagner [Thu, 18 Apr 2013 07:07:25 +0000 (09:07 +0200)]
session: Do not fail when creating default policy configuration

Do not handle the small alloc failures because glib will abort
when memory is tight anyway.

11 years agosession: Change to "func_t" postfix to callback typedef
Daniel Wagner [Thu, 18 Apr 2013 07:07:24 +0000 (09:07 +0200)]
session: Change to "func_t" postfix to callback typedef

Streamline the callback typedefs with the rest of the code.

11 years agosession_policy_local: Use callback helpers
Daniel Wagner [Thu, 18 Apr 2013 07:07:23 +0000 (09:07 +0200)]
session_policy_local: Use callback helpers

Use the generic callback helpers to encapsulate struct create_data.
In a later patch we will add some more data elemets to struct
create_data. That is the reason why it is not remove here.

11 years agosession_policy_local: Load policy when a new file is added
Daniel Wagner [Tue, 9 Apr 2013 16:13:13 +0000 (18:13 +0200)]
session_policy_local: Load policy when a new file is added

When a file is added (not modified) we need to parse it as well

11 years agosession_policy_local: Do not free policy on load error
Daniel Wagner [Tue, 9 Apr 2013 16:13:12 +0000 (18:13 +0200)]
session_policy_local: Do not free policy on load error

We should not unref the policy on parsing errors becase the policy
lifetime is attached to the lifetime of the file. When the file
is removed we remove it from the hash table.

11 years agosession_policy_local: Empty policy list indicated no match all
Daniel Wagner [Tue, 9 Apr 2013 16:13:11 +0000 (18:13 +0200)]
session_policy_local: Empty policy list indicated no match all

Match all is expressed via CONNMAN_SERVICE_TYPE_UNKNOWN. An empty
list means no match.

11 years agosession_policy_local: Set default policy using common code
Daniel Wagner [Tue, 9 Apr 2013 16:13:10 +0000 (18:13 +0200)]
session_policy_local: Set default policy using common code

Use connman_sessoin_set_default_config() instead of open coded
version.

This prepars the next fix.

11 years agosession: Empty policy list indicated no match all
Daniel Wagner [Tue, 9 Apr 2013 16:13:09 +0000 (18:13 +0200)]
session: Empty policy list indicated no match all

Match all is expressed via CONNMAN_SERVICE_TYPE_UNKNOWN. An empty
list means no match.

11 years agosession: Do not try to access already removed hash
Daniel Wagner [Tue, 9 Apr 2013 16:13:08 +0000 (18:13 +0200)]
session: Do not try to access already removed hash

Make sure we never try to cleanup when the hash table has
been destroyed. In this case all resources have been
freed already.

11 years agosession: Reorder shutdown sequence
Daniel Wagner [Tue, 9 Apr 2013 16:13:07 +0000 (18:13 +0200)]
session: Reorder shutdown sequence

By calling __connman_session_cleanup() before __connman_plugin_cleanup()
we make sure all resources allocated can released in the correct order.
The code assumes after an successful allocation, free will always work
and therefore we double free allocated memory.

11 years agowifi: improve fix to avoid device double release on disable
Grant Erickson [Fri, 12 Apr 2013 19:06:06 +0000 (12:06 -0700)]
wifi: improve fix to avoid device double release on disable

Per MEEGO-25999 <https://bugs.meego.com/show_bug.cgi?id=25999>, there
exists a race between scan_callback and wifi_disable such that a care-
fully-timed deassertion of the technology Powered property between
throw_wifi_scan and scan_callback will lead to a device reference
count underflow. A second Powered property false -> true -> false
transition will then deallocate the device and Wi-Fi will no longer
function until connman or the system is restarted.

This patch improves upon and revises the prior patch to address this
issue by recognizing that hidden networks involve a slightly different
code path and timing and that both this and the prior case can be
addressed by tracking the device scanning state and only releasing the
device when the state is asserted.

11 years agotools: Rename dnsproxy-unit to dnsproxy-test
Jukka Rissanen [Wed, 10 Apr 2013 07:32:38 +0000 (10:32 +0300)]
tools: Rename dnsproxy-unit to dnsproxy-test

Rename the dnsproxy file as it is more of a test tool than a unit test.

11 years agotools: Make message buffers static
Jukka Rissanen [Wed, 10 Apr 2013 07:32:37 +0000 (10:32 +0300)]
tools: Make message buffers static

11 years agoservice: Set state properly after disconnecting the associating service
Jukka Rissanen [Wed, 10 Apr 2013 08:01:47 +0000 (11:01 +0300)]
service: Set state properly after disconnecting the associating service

This is related to fix d7d8f8bdb7c1ddae098893e10608fcb42034a9ff
We did not set the state to idle after disconnecting the
associating service.

Fixes BMC#25981

11 years agowifi: avoid device double release on disable
Grant Erickson [Thu, 11 Apr 2013 07:28:11 +0000 (00:28 -0700)]
wifi: avoid device double release on disable

Per MEEGO-25999 <https://bugs.meego.com/show_bug.cgi?id=25999>, there
exists a race between scan_callback and wifi_disable such that a care-
fully-timed deassertion of the technology Powered property between
throw_wifi_scan and scan_callback will lead to a device reference
count underflow. A second Powered property false -> true -> false
transition will then deallocate the device and Wi-Fi will no longer
function until connman or the system is restarted.

This patch addresses that race by tracking and observing the disabling
state such that scan_callback ad wifi_disable can effectively negotiate
which has performed the device release, thereby avoiding the double
release and resulting underflow.

11 years agoRelease 1.13 1.13
Marcel Holtmann [Tue, 9 Apr 2013 03:59:40 +0000 (20:59 -0700)]
Release 1.13

11 years agobuild: Add dnsproxy-unit to .gitignore
Marcel Holtmann [Tue, 9 Apr 2013 03:54:08 +0000 (20:54 -0700)]
build: Add dnsproxy-unit to .gitignore

11 years agogdbus: Fix not calling property_changed callback
Luiz Augusto von Dentz [Wed, 27 Feb 2013 12:00:23 +0000 (14:00 +0200)]
gdbus: Fix not calling property_changed callback

In case a property did not appear by the time proxy_added was called
property_changed has to be called if it appear latter otherwise the
application will be unaware of it.

11 years agogdbus: Use gcc builtin instead of g_atomic
Lucas De Marchi [Mon, 8 Apr 2013 20:56:18 +0000 (17:56 -0300)]
gdbus: Use gcc builtin instead of g_atomic

g_atomic_* end up using G_STATIC_ASSERT, causing gcc 4.8 to yell due to
-Wunused-local-typedefs.

gdbus/client.c: In function ‘g_dbus_client_ref’:
/usr/include/glib-2.0/glib/gmacros.h:162:53: error: typedef ‘_GStaticAssertCompileTimeAssertion_2’ locally defined but not used [-Werror=unused-local-typedefs]
 #define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1]

11 years agovpn: Host IP address was not freed
Jukka Rissanen [Sun, 7 Apr 2013 14:53:49 +0000 (17:53 +0300)]
vpn: Host IP address was not freed

The host ip address field is only used if user has given vpn
server as a host name instead of host ip address.

11 years agovpn: Free ip address before allocating a new one
Jukka Rissanen [Sun, 7 Apr 2013 14:54:23 +0000 (17:54 +0300)]
vpn: Free ip address before allocating a new one

Possible memory leak here as we might have ip address allocated
already.

11 years agodnsproxy: Fix cached message length correctly
Jukka Rissanen [Sun, 7 Apr 2013 14:52:37 +0000 (17:52 +0300)]
dnsproxy: Fix cached message length correctly

We must copy the response buffer before fixing the packet length.
Otherwise the packet length will go wrong if the request contained
EDNS0 data.

11 years agoclient: Add --help, -h options
Patrik Flykt [Sat, 6 Apr 2013 20:10:18 +0000 (23:10 +0300)]
client: Add --help, -h options

11 years agotools: Add unit test for dnsproxy
Jukka Rissanen [Fri, 5 Apr 2013 09:33:09 +0000 (12:33 +0300)]
tools: Add unit test for dnsproxy

11 years agodnsproxy: Handle partial TCP messages from client
Jukka Rissanen [Fri, 5 Apr 2013 09:33:08 +0000 (12:33 +0300)]
dnsproxy: Handle partial TCP messages from client

We were not handling client sent partial TCP messages correctly.
This meant that ConnMan would block if the client using TCP would
not send full DNS request.

When a new TCP client connects in tcp_listener_event(), a new
TCP channel is created to handle a partial client message if
all of the message is not already available. The partial TCP
message is patched together in tcp_client_event(). When all of
the TCP message has been received, the message is processed in
read_tcp_data(). The client has to send the DNS request within two
seconds before the connection is closed by ConnMan.

11 years agoservice: Drop unused argument in preferred_tech_list_get()
Daniel Wagner [Thu, 4 Apr 2013 15:09:04 +0000 (17:09 +0200)]
service: Drop unused argument in preferred_tech_list_get()

11 years agoclient: Fix help text, IPv4 setting uses netmask
Patrik Flykt [Fri, 5 Apr 2013 09:28:44 +0000 (12:28 +0300)]
client: Fix help text, IPv4 setting uses netmask

11 years agodnsproxy: Create cache if it is missing when doing lookup
Jukka Rissanen [Thu, 4 Apr 2013 11:44:56 +0000 (14:44 +0300)]
dnsproxy: Create cache if it is missing when doing lookup

11 years agodnsproxy: Fix memory leak when request timeouts
Jukka Rissanen [Thu, 4 Apr 2013 11:44:55 +0000 (14:44 +0300)]
dnsproxy: Fix memory leak when request timeouts