Tomasz Bursztyka [Mon, 28 Jan 2013 13:43:11 +0000 (15:43 +0200)]
gresolv: Destroy query at the relevant place when parsing the response
parse_response() will eventually call sort_and_return_results() which in turn
will call the result function. But the result function might cancel the gresolv.
At that point all queries belonging to this gresolv are destroyed. Returning back
to parse_response(), it calls again destroy_query() on an already destroyed one.
Thus leading to a crash.
Same issue with query_timeout()
Reported by Daniel Wagner
Tomasz Bursztyka [Mon, 21 Jan 2013 10:46:19 +0000 (12:46 +0200)]
service: Notify leaving online state when downgrading it to ready
Fixes BMC#25862
Jukka Rissanen [Mon, 21 Jan 2013 12:39:31 +0000 (14:39 +0200)]
ipconfig: IPv6 was enabled too early
When enabling IPv6 ipconfig, we enable kernel IPv6 support too early.
The ipconfig might get unreffed which will disable ipconfig and
thus disable kernel IPv6 support. By moving kernel IPv6 enabling
after the ipconfig unref call, we make sure that IPv6 kernel support
is properly enabled.
This is related to fix in commit
d479904ecaa2bd9
Marcel Holtmann [Mon, 21 Jan 2013 02:25:12 +0000 (18:25 -0800)]
gdbus: Check for valid path before handling properties
Jukka Rissanen [Fri, 18 Jan 2013 12:11:32 +0000 (14:11 +0200)]
dnsproxy: DNS response answer count was incorrectly set
We set the answer count in host byte order instead of network
byte order when sending cached AAAA record. This problem is only
seen in special case when an AAAA record is generated by us when
there is IPv4 address in cache but no IPv6 address for the host.
Tomasz Bursztyka [Wed, 16 Jan 2013 10:57:14 +0000 (12:57 +0200)]
network: Do not report any error when removing a connecting network
When connecting a network, if it's related technology is disabled, this network
will raise an error through the agent. Leading to a possible retry request from
the user, then to a crash if the user does so.
Thus, we prevent any error to be raised in such situation and silently disconnect
the connecting network instead.
Tomasz Bursztyka [Wed, 16 Jan 2013 10:57:13 +0000 (12:57 +0200)]
network: Move up code about set_connected() and set_disconnected
Jukka Rissanen [Tue, 15 Jan 2013 14:47:43 +0000 (16:47 +0200)]
service: Trigger autoconnect when AutoConnect flag is enabled
Jukka Rissanen [Tue, 15 Jan 2013 14:11:26 +0000 (16:11 +0200)]
ipconfig: Do not disable IPv6 in lower up state
Disabling IPv6 in lower up causes problems in IPv6 connectivity.
The interface IPv6 status can stay in disabled state because of
races. So this patch reverts the commit
4ce90440a70abce7de537777
and lets service IPv6 state go to READY when we get an auto
configured address for the interface.
Fixes BMC#25929
Tomasz Bursztyka [Tue, 15 Jan 2013 08:20:44 +0000 (10:20 +0200)]
service: Update notifier state when relevant while getting ready
When getting 1 service to online, and disonnecting it: Manager state
stays at 'ready'. This is due to service updating the notifier about
its state 'ready' 2 times. Once when connecting: idle -> ready, and
once when disconnecting: online -> ready.
Tomasz Bursztyka [Tue, 15 Jan 2013 12:57:38 +0000 (14:57 +0200)]
agent: Keep track of the driver to unref user context relevantly
Fixes BMC#25884
Tomasz Bursztyka [Fri, 11 Jan 2013 12:37:05 +0000 (14:37 +0200)]
gweb: Make sure to destroy the lookup before calling any result function
Program received signal SIGSEGV, Segmentation fault.
Backtrace:
0 0x00000000004219fe in _debug (resolv=0x75f9a0, file=0x497267 "gweb/gresolv.c",
caller=0x497598 "destroy_lookup",
format=0x497278 "lookup %p id %d ipv4 %p ipv6 %p") at gweb/gresolv.c:136
1 0x0000000000421ac5 in destroy_lookup (lookup=0x760e40) at gweb/gresolv.c:154
2 0x00000000004224ce in sort_and_return_results (lookup=0x760e40) at gweb/gresolv.c:520
3 0x0000000000422597 in query_timeout (user_data=0x760510) at gweb/gresolv.c:542
4 0x00007ffff7b1b26b in g_timeout_dispatch (source=0x760ea0, callback=<optimized out>,
user_data=<optimized out>) at gmain.c:4095
5 0x00007ffff7b1a643 in g_main_dispatch (context=0x6f5110) at gmain.c:2784
6 g_main_context_dispatch (context=0x6f5110) at gmain.c:3288
7 0x00007ffff7b1a988 in g_main_context_iterate (dispatch=1, block=<optimized out>,
context=0x6f5110, self=<optimized out>) at gmain.c:3359
8 g_main_context_iterate (context=0x6f5110, block=<optimized out>, dispatch=1,
self=<optimized out>) at gmain.c:3296
9 0x00007ffff7b1ade5 in g_main_loop_run (loop=0x6f4fe0) at gmain.c:3553
10 0x0000000000442a5f in main (argc=1, argv=0x7fffffffdea8) at src/main.c:705
Reported by Daniel Wagner
Patrik Flykt [Tue, 8 Jan 2013 09:32:51 +0000 (11:32 +0200)]
gsupplicant: Return max SSIDs to scan given by wpa_supplicant
Although it seems wpa_supplicant can handle 4 SSIDs in version 0.7.x
and 16 starting with 0.8.x, in practise this does not work. Return the
value reported without relying on wpa_supplicant internals to handle
the situation. In order for hidden scans to work properly, the minimum
value needs to be 1.
Julien Massot [Tue, 8 Jan 2013 09:34:37 +0000 (10:34 +0100)]
build: Do not use deprecated AM_CONFIG_HEADER
The long-obsoleted AM_CONFIG_HEADER macro was removed in automake 1.13.
Use AC_CONFIG_HEADERS instead.
Forest Bond [Mon, 7 Jan 2013 14:24:55 +0000 (09:24 -0500)]
inet: Fix error handling when bridging interfaces
Functions that add and remove interfaces to and from bridges now return
an appropriate error code.
Forest Bond [Mon, 7 Jan 2013 14:24:26 +0000 (09:24 -0500)]
inet: Fix error handling when adding/removing routes
Functions that add and remove routes now return an appropriate error
code. EEXIST and ESRCH are ignored when adding and removing routes
(respectively) to reduce spurious error messages in the logs.
Patrik Flykt [Tue, 8 Jan 2013 11:57:03 +0000 (13:57 +0200)]
vpn-provider: Check if providers list is NULL before using it
Anderson Lizardo [Sun, 6 Jan 2013 00:47:46 +0000 (20:47 -0400)]
gdbus: Fix memory leak on properties_set()
The pointer returned by dbus_message_iter_get_signature() must be freed
with dbus_free().
Fixes this memory leak:
==1857== 16 bytes in 1 blocks are definitely lost in loss record 104 of
251
==1857== at 0x402BF52: realloc (in
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==1857== by 0x415E286: dbus_realloc (in
/lib/i386-linux-gnu/libdbus-1.so.3.5.8)
==1857== by 0x415E70B: ??? (in
/lib/i386-linux-gnu/libdbus-1.so.3.5.8)
==1857== by 0x415F17B: ??? (in
/lib/i386-linux-gnu/libdbus-1.so.3.5.8)
==1857== by 0x414CB33: dbus_message_iter_get_signature (in
/lib/i386-linux-gnu/libdbus-1.so.3.5.8)
==1857== by 0x8053239: properties_set (object.c:899)
==1857== by 0x5FFFFF: ???
==1857==
Marcel Holtmann [Sat, 5 Jan 2013 04:28:07 +0000 (20:28 -0800)]
gdbus: Check signature of property value before calling setter
Patrik Flykt [Fri, 14 Dec 2012 13:58:20 +0000 (15:58 +0200)]
TODO: Remove the storage migration task
Patrik Flykt [Fri, 4 Jan 2013 11:12:53 +0000 (13:12 +0200)]
storage: Remove storage migration code
Patrik Flykt [Tue, 11 Dec 2012 14:36:28 +0000 (16:36 +0200)]
TODO: Remove WiMAX removal task
Patrik Flykt [Tue, 11 Dec 2012 14:36:27 +0000 (16:36 +0200)]
doc: Remove WiMAX info from documentation
Patrik Flykt [Tue, 11 Dec 2012 14:36:26 +0000 (16:36 +0200)]
core: Remove WiMAX definitions from code
Patrik Flykt [Tue, 11 Dec 2012 14:36:25 +0000 (16:36 +0200)]
plugins: Remove WiMAX plugin files
Patrik Flykt [Tue, 11 Dec 2012 14:36:24 +0000 (16:36 +0200)]
build: Remove WiMAX from configuration options
Lucas De Marchi [Fri, 4 Jan 2013 03:33:44 +0000 (01:33 -0200)]
gdbus: Don't include just added interfaces in GetManagedObjects
If we received a call to ObjectManager.GetManagedObject we should not
include in the response the interfaces in data->added. This is because
it's not guaranteed that those interfaces will trigger an
InterfacesAdded signal, which is the case if the interface is removed in
the same mainloop iteration.
Lucas De Marchi [Fri, 4 Jan 2013 01:21:04 +0000 (23:21 -0200)]
gdbus: Simplify generated introspection
The generated introspection is not supposed to be read as is by human,
so there's no point in printing the indentation or writing more code to
use auto-close tags.
If it's desired to read the raw xml file, user can always use other
tools to transform the output such as "xmllint --format".
This also fixes a missing </property> when property is deprecated.
Tomasz Bursztyka [Wed, 2 Jan 2013 13:57:34 +0000 (15:57 +0200)]
test: Fix simple-agent so it registers the right path
Marcel Holtmann [Wed, 2 Jan 2013 23:58:37 +0000 (15:58 -0800)]
TODO: Add entry for BlueZ 5.x task
Marcel Holtmann [Wed, 2 Jan 2013 15:35:53 +0000 (07:35 -0800)]
gdbus: Hold client reference during get name owner reply
Luiz Augusto von Dentz [Fri, 28 Dec 2012 12:51:03 +0000 (14:51 +0200)]
gdbus: Call check_signals when sending signals with g_dbus_send_message
If message passed to g_dbus_send_message is a signal verify if it is a
valid and there really exists an interface with respective signal name.
Luiz Augusto von Dentz [Fri, 28 Dec 2012 12:51:02 +0000 (14:51 +0200)]
gdbus: Check if the interface being registered is valid
This prevent registering interfaces that are empty or have all members
marked as experiemental.
Luiz Augusto von Dentz [Fri, 28 Dec 2012 12:51:01 +0000 (14:51 +0200)]
gdbus: Introduce G_DBUS_PROPERTY_FLAG_EXPERIMENTAL
This flag can be used to mark properties as experimental, marked
properties are disabled by default and can be enabled by setting
G_DBUS_FLAG_ENABLE_EXPERIMENTAL using g_dbus_set_flags.
Luiz Augusto von Dentz [Fri, 28 Dec 2012 12:51:00 +0000 (14:51 +0200)]
gdbus: Introduce G_DBUS_SIGNAL_FLAG_EXPERIMENTAL
This flag can be used to mark signals as experimental, marked
signals are disabled by default and can be enabled by setting
G_DBUS_FLAG_ENABLE_EXPERIMENTAL using g_dbus_set_flags.
Luiz Augusto von Dentz [Fri, 28 Dec 2012 12:50:59 +0000 (14:50 +0200)]
gdbus: Introduce G_DBUS_METHOD_FLAG_EXPERIMENTAL
This flag can be used to mark methods as experimental, marked
methods are disable by default and can be enabled by setting
G_DBUS_FLAG_ENABLE_EXPERIMENTAL using g_dbus_set_flags.
Marcel Holtmann [Sun, 30 Dec 2012 08:58:04 +0000 (00:58 -0800)]
gdbus: Include changed properties only once per signal
Marcel Holtmann [Sat, 29 Dec 2012 21:42:51 +0000 (13:42 -0800)]
gdbus: Update properties on D-Bus client re-connections
Marcel Holtmann [Sat, 29 Dec 2012 21:24:17 +0000 (13:24 -0800)]
gdbus: Add function to manually refresh properties
Marcel Holtmann [Sat, 29 Dec 2012 20:29:50 +0000 (12:29 -0800)]
gdbus: Add support for proxy property change notifications
Marcel Holtmann [Sat, 29 Dec 2012 20:27:33 +0000 (12:27 -0800)]
gdbus: Fix handling of client connect/disconnect signals
Marcel Holtmann [Sat, 29 Dec 2012 19:57:05 +0000 (11:57 -0800)]
gdbus: Protect standalone proxy creation with client reference
Marcel Holtmann [Fri, 28 Dec 2012 05:30:06 +0000 (21:30 -0800)]
gdbus: Use object manager only if callback functions are set
Marcel Holtmann [Fri, 28 Dec 2012 05:21:16 +0000 (21:21 -0800)]
gdbus: Use client service name and not hardcoded org.bluez
Marcel Holtmann [Fri, 28 Dec 2012 05:19:31 +0000 (21:19 -0800)]
gdbus: Add support for creating D-Bus proxies without object manager
Marcel Holtmann [Sun, 23 Dec 2012 02:05:05 +0000 (18:05 -0800)]
Release 1.10
Marcel Holtmann [Sun, 23 Dec 2012 01:38:39 +0000 (17:38 -0800)]
build: Fix Daniel's commits without name
Marcel Holtmann [Sun, 23 Dec 2012 01:35:25 +0000 (17:35 -0800)]
build: Fix Flavio's name mapping to email address
Marcel Holtmann [Sat, 22 Dec 2012 20:14:30 +0000 (12:14 -0800)]
build: Add vpn/net.connman.vpn.service to .gitignore
Marcel Holtmann [Sat, 22 Dec 2012 20:05:59 +0000 (12:05 -0800)]
gdbus: Avoid using g_ptr_array_new_full convenience function
The g_ptr_array_new_full function only got introduced with GLib 2.30
and to avoid requiring a newer GLib use g_ptr_array_set_free_func instead.
Patrik Flykt [Fri, 21 Dec 2012 12:10:33 +0000 (14:10 +0200)]
session-policy-local: Check policy being non-NULL before using
When running unit/test-session the following happens if SELinux is disabled but
--enable-session-policy-local is specified for ./configure:
connmand[6468]: src/session.c:__connman_session_create() owner :1.269
connmand[6468]: src/dbus.c:selinux_get_context_reply() Failed to retrieve SELinux context
connmand[6468]: src/session.c:session_create_cb() session 0x2388dc0 config (nil)
connmand[6468]: Aborting (signal 11) [src/connmand]
connmand[6468]: ++++++++ backtrace ++++++++
connmand[6468]: #0 0x7f5b2b8184f0 in /lib/x86_64-linux-gnu/libc.so.6
connmand[6468]: #1 0x4379b4 in policy_local_destroy() at plugins/session_policy_local.c:245
connmand[6468]: #2 0x46703f in free_session() at src/session.c:258
connmand[6468]: #3 0x468603 in session_create_cb() at src/session.c:1710
connmand[6468]: #4 0x4377e7 in selinux_context_reply() at plugins/session_policy_local.c:201
connmand[6468]: #5 0x461366 in selinux_get_context_reply() at src/dbus.c:475
connmand[6468]: #6 0x7f5b2c66b1ca in /lib/x86_64-linux-gnu/libdbus-1.so.3
connmand[6468]: #7 0x7f5b2c66e293 in /lib/x86_64-linux-gnu/libdbus-1.so.3
connmand[6468]: #8 0x410aa8 in message_dispatch() at gdbus/mainloop.c:76
connmand[6468]: #9 0x7f5b2c8eeeeb in /lib/x86_64-linux-gnu/libglib-2.0.so.0
connmand[6468]: #10 0x7f5b2c8ee355 in /lib/x86_64-linux-gnu/libglib-2.0.so.0
connmand[6468]: #11 0x7f5b2c8ee688 in /lib/x86_64-linux-gnu/libglib-2.0.so.0
connmand[6468]: #12 0x7f5b2c8eea82 in /lib/x86_64-linux-gnu/libglib-2.0.so.0
connmand[6468]: #13 0x410592 in main() at src/main.c:672
connmand[6468]: #14 0x7f5b2b804ead in /lib/x86_64-linux-gnu/libc.so.6
connmand[6468]: +++++++++++++++++++++++++++
Daniel Wagner [Wed, 19 Dec 2012 14:29:17 +0000 (15:29 +0100)]
gweb: Use glib memory functions
Use for all memory allocation/dealocation operation the glib
functions. This allows us to use g_mem_profile().
Daniel Wagner [Wed, 19 Dec 2012 14:29:16 +0000 (15:29 +0100)]
gdhcp: Use glib memory functions
Use for all memory allocation/dealocation operation the glib
functions. This allows us to use g_mem_profile().
Daniel Wagner [Wed, 19 Dec 2012 14:29:15 +0000 (15:29 +0100)]
core: Use glib memory functions
Use for all memory allocation/dealocation operation the glib
functions. This allows us to use g_mem_profile().
Marcel Holtmann [Wed, 19 Dec 2012 02:49:33 +0000 (03:49 +0100)]
build: Compile support for new D-Bus client helpers
Marcel Holtmann [Tue, 18 Dec 2012 04:27:09 +0000 (05:27 +0100)]
gdbus: Increase the method call timeout to 5 minutes
Marcel Holtmann [Tue, 18 Dec 2012 04:09:59 +0000 (05:09 +0100)]
gdbus: Add helper for sending async error replies
Marcel Holtmann [Sun, 16 Dec 2012 00:16:28 +0000 (01:16 +0100)]
gdbus: Fix race condition with creating duplicate client proxies
Marcel Holtmann [Sun, 16 Dec 2012 00:06:33 +0000 (01:06 +0100)]
gdbus: Fix issue with unref of client while parsing interfaces
Marcel Holtmann [Sat, 15 Dec 2012 22:34:51 +0000 (23:34 +0100)]
gdbus: Fix issue with unref of client in connect handler
Marcel Holtmann [Sat, 15 Dec 2012 00:50:58 +0000 (01:50 +0100)]
gdbus: Add support for D-Bus client method calls
Marcel Holtmann [Fri, 14 Dec 2012 18:48:06 +0000 (19:48 +0100)]
gdbus: Add callback support for handling property changes
Marcel Holtmann [Fri, 14 Dec 2012 18:16:59 +0000 (19:16 +0100)]
gdbus: Handle property changed signals and update property
Marcel Holtmann [Fri, 14 Dec 2012 17:48:18 +0000 (18:48 +0100)]
gdbus: Set property changed filter match rule for each proxy
Marcel Holtmann [Fri, 14 Dec 2012 17:23:39 +0000 (18:23 +0100)]
gdbus: Use a GPtrArray for the match rules
Marcel Holtmann [Fri, 14 Dec 2012 14:19:53 +0000 (15:19 +0100)]
gdbus: Add support for setting D-Bus client basic properties
Marcel Holtmann [Fri, 14 Dec 2012 14:07:36 +0000 (15:07 +0100)]
gdbus: Deep copy of variants also requires a signature
Marcel Holtmann [Thu, 13 Dec 2012 16:14:33 +0000 (17:14 +0100)]
gdbus: Add support for complex D-Bus client properties
Marcel Holtmann [Thu, 13 Dec 2012 13:06:25 +0000 (14:06 +0100)]
gdbus: Add support for D-Bus client properties
Marcel Holtmann [Thu, 13 Dec 2012 01:38:53 +0000 (02:38 +0100)]
gdbus: Add support for D-Bus client proxies
Marcel Holtmann [Wed, 12 Dec 2012 20:58:57 +0000 (21:58 +0100)]
gdbus: Add helper functions for simple D-Bus clients
Daniel Wagner [Mon, 17 Dec 2012 11:03:59 +0000 (12:03 +0100)]
agent: Don't crash when no agent was registered on exit
If the user never registered an agent, agent_sender and agent_path
are NULL. D-Bus does not handle this gracefully, instead it kills
ConnMan. So let's skip the D-Bus part in this case.
connmand[4271]: src/agent.c:connman_agent_driver_unregister() Sending release to (null) path (null) iface net.connman.Agent
process 4271: arguments to dbus_message_new_method_call() were incorrect, assertion "path != NULL" failed in file dbus-message.c line 1198.
This is normally a bug in some application using the D-Bus library.
D-Bus not built with -rdynamic so unable to print a backtrace
connmand[4271]: Aborting (signal 6) [./src/connmand]
connmand[4271]: ++++++++ backtrace ++++++++
connmand[4271]: #0 0x3a9920f500 in /lib64/libpthread.so.0
connmand[4271]: #1 0x3a98e36285 in /lib64/libc.so.6
connmand[4271]: #2 0x3a98e37b9b in /lib64/libc.so.6
connmand[4271]: #3 0x3c7602fff5 in /lib64/libdbus-1.so.3
connmand[4271]: #4 0x3c76026fc1 in /lib64/libdbus-1.so.3
connmand[4271]: #5 0x3c76018aea in /lib64/libdbus-1.so.3
connmand[4271]: #6 0x45b8b1 in connman_agent_driver_unregister() at src/agent.c:426
connmand[4271]: #7 0x457b7c in __connman_service_cleanup() at src/service.c:6756
connmand[4271]: #8 0x43f54f in main() at src/main.c:702
connmand[4271]: #9 0x3a98e2169d in /lib64/libc.so.6
connmand[4271]: +++++++++++++++++++++++++++
Marcel Holtmann [Fri, 14 Dec 2012 15:09:54 +0000 (16:09 +0100)]
main: Small cleanup for config file parsing and checking
Patrik Flykt [Fri, 14 Dec 2012 14:55:55 +0000 (16:55 +0200)]
main: Add function to check for main.conf groups and keys
Print out a warning on an unknown group and unknown keys in the "General"
group.
Patrik Flykt [Fri, 14 Dec 2012 14:55:54 +0000 (16:55 +0200)]
main: Use defines for main.conf keys
Patrik Flykt [Fri, 14 Dec 2012 11:01:19 +0000 (13:01 +0200)]
vpn-provider: Report disconnect errors other than -EINPROGRESS
Return code -EINPROGRESS is an indication of a disconnect taking place,
not a disconnect error.
Patrik Flykt [Fri, 14 Dec 2012 11:01:18 +0000 (13:01 +0200)]
vpn-provider: Set state when connecting and disconnecting
Update provider state when connect or disconnect is initiated.
Patrik Flykt [Fri, 14 Dec 2012 11:01:17 +0000 (13:01 +0200)]
vpn-plugin: Send proper response to caller and connect if needed
Send a proper response to the caller and attempt to connect if the
provider data exists but is not connected.
Patrik Flykt [Fri, 14 Dec 2012 11:01:16 +0000 (13:01 +0200)]
vpn: Clear pending connect flag on connect attempt
Fixes BMC#25894
Patrik Flykt [Wed, 12 Dec 2012 09:39:00 +0000 (11:39 +0200)]
technology: Soft block on offline mode or disabled technology
When adding an rfkill device which is unblocked, soft block it immediately
if offline mode is enabled or the technology (enable_persistent) is
disabled.
Fixes BMC#25858
Marcel Holtmann [Tue, 11 Dec 2012 12:49:30 +0000 (13:49 +0100)]
README: Add extra empty line between sections
Marcel Holtmann [Tue, 11 Dec 2012 11:38:08 +0000 (12:38 +0100)]
unit: Fix differences with including gdbus.h header
Marcel Holtmann [Tue, 11 Dec 2012 11:37:45 +0000 (12:37 +0100)]
client: Fix up header inclusion mess
Marcel Holtmann [Tue, 11 Dec 2012 11:30:50 +0000 (12:30 +0100)]
client: Do not include headers from the core
Marcel Holtmann [Tue, 11 Dec 2012 11:22:52 +0000 (12:22 +0100)]
client: Provide own D-Bus helper functions
Marcel Holtmann [Tue, 11 Dec 2012 11:13:17 +0000 (12:13 +0100)]
client: Remove useless circular inclusion protection
Marcel Holtmann [Tue, 11 Dec 2012 11:11:47 +0000 (12:11 +0100)]
client: Add missing includes of config.h
Marcel Holtmann [Tue, 11 Dec 2012 11:07:08 +0000 (12:07 +0100)]
client: Fix the mangled copyright statement
In addition relax it to GPLv2 or later to make linking against
newer versions of readline library possible.
Marcel Holtmann [Tue, 11 Dec 2012 00:23:46 +0000 (01:23 +0100)]
build: Fix typo in command line client configure option
Patrik Flykt [Mon, 10 Dec 2012 10:42:05 +0000 (12:42 +0200)]
vpn-plugin: Check completion of configure and connect
When creating a configuration, wait until both configuration and
connection has been done. Otherwise NULL user data is passed to the
callback which then cannot relay an error to the caller and the caller will
get a timeout waiting for a reply from D-Bus.
Patrik Flykt [Mon, 10 Dec 2012 10:42:04 +0000 (12:42 +0200)]
vpn-plugin: Propagate most common errors to callback function
Instead of always setting the create callback function error to
-ECONNREFUSED, create a helper function to detect the two most often emitted
errors.
Patrik Flykt [Mon, 10 Dec 2012 10:42:03 +0000 (12:42 +0200)]
manager: -EINPROGRESS is a valid response for ConnectProvider
With VPN connections being handled by connman-vpnd, -EINPROGRESS is a
valid value to report to the caller if the VPN is already connecting.
Daniel Wagner [Thu, 6 Dec 2012 07:37:11 +0000 (08:37 +0100)]
session_policy_local: Create policy directory if necessary
Create the policy directory as first thing. If we don't do this
adding a watch on the non existing directory will fail and the
whole plugin is not loaded.
We need to figure out later how permissive the MODE of the directory
should be. Currently, we play safe and have it tied down.
Daniel Wagner [Wed, 5 Dec 2012 13:57:50 +0000 (14:57 +0100)]
session: Call callback directly when no plugin is assigned
When we have no plugin assigned we have to call the final
session callback directly.
Since __connman_session_create() doesn't know if a plugin was
called or not, create_policy_config() or __connman_session_create()
needs to free all allocated resources (also in the error path).
Daniel Wagner [Wed, 5 Dec 2012 13:57:49 +0000 (14:57 +0100)]
session: Add a cleanup function for the user config
This helps to make the error path more readable.
Daniel Wagner [Wed, 5 Dec 2012 13:57:48 +0000 (14:57 +0100)]
session: Move cleanup/destroy function up
We need to call those function from create_policy_config() therefore
more it in front of it.
Daniel Wagner [Wed, 5 Dec 2012 13:57:47 +0000 (14:57 +0100)]
session: Return error code from callback
In the case the callback is directly called we can use the
return value to provide it to the user.
Daniel Wagner [Wed, 5 Dec 2012 13:57:46 +0000 (14:57 +0100)]
session: Fix error case handling
There is no need to unref the pending message, because in all
cases we generate a reply message which takes care of unrefing
the message. Hence the dbus_message_unref() is not needed.
Furthermore, we need to pass the created error message to the bus
via g_dbus_send_message() so that the client gets always a response.
Daniel Wagner [Wed, 5 Dec 2012 13:57:45 +0000 (14:57 +0100)]
session: Fix error return code
The error codes propagated over D-Bus are non-negative values.
Daniel Wagner [Wed, 5 Dec 2012 13:57:44 +0000 (14:57 +0100)]
session: Remove notify watch
free_session() will be also called from the error path (e.g.
__connman_session_create()). In case we have added a watch
we need to disarm it.