Zhang zhengguang [Wed, 29 Oct 2014 03:03:47 +0000 (11:03 +0800)]
Imported Upstream version 1.26
Zhang zhengguang [Thu, 17 Jul 2014 02:37:39 +0000 (10:37 +0800)]
Imported Upstream version 1.24
Patrik Flykt [Wed, 12 Jun 2013 13:54:32 +0000 (16:54 +0300)]
client: Fix passphrase handling
An empty passphrase means that WPS is to be tried next. If WPS is not
supported by the service, passphrase can not be left empty.
Patrik Flykt [Wed, 12 Jun 2013 13:54:31 +0000 (16:54 +0300)]
client: Implement VPN Agent API RequestInput method call
Instead of having a global agent_input struct, make the structure a
member of the agent_data structure that gets passed around when
handling the RequestInput method call.
With this modification agent_data is self-contained with all needed
information and the RequestInput handling code can be shared between
ConnMan and VPN agent implementations.
Patrik Flykt [Wed, 12 Jun 2013 13:54:30 +0000 (16:54 +0300)]
client: Add vpnagent command to register and unregister VPN Agent
Patrik Flykt [Wed, 12 Jun 2013 13:54:29 +0000 (16:54 +0300)]
client: Implement support for queueing Agent messages
ConnMan and ConnMan VPN daemon both send only one Agent message at
a time. Since they are two different daemons, they can be sending
messages at the same time independent of each other.
Implement a check for an agent request from the other daemon being
already processed and if so store the message for later. When the
current agent request has been processed, check if there are
pending requests from the other daemon and re-run the pending
function.
In order to support arbitrary queueing, make all method call
implementations asynchronous.
Patrik Flykt [Wed, 12 Jun 2013 13:54:28 +0000 (16:54 +0300)]
client: Add VPN Agent support for Release, Cancel and ReportError
Create a new agent data structure for the VPN Agent and add the needed
minor modifications to Release, Cancel and ReportError method calls in
order to get them working both for Agent and VPN Agent.
Create new register and unregister functions for the VPN Agent code.
Patrik Flykt [Wed, 12 Jun 2013 13:54:27 +0000 (16:54 +0300)]
client: Create agent data structure and pass it in function callbacks
Collect the agent variables into a data structure and update the agent
functionality to pass this data structure around as function callback
user data.
Update the agent mode input functionality to store both the callback
function and user data pointers. Notice that only only one input
callback can be handled at any one time due to the input handling itself
and the simple storing of callback and user data pointers.
Patrik Flykt [Wed, 12 Jun 2013 13:54:26 +0000 (16:54 +0300)]
client: Don't handle Agent messages in monitor code
Agent messages need to be handled in the agent code, ignore them when
they get captured in the monitor code.
Patrik Flykt [Wed, 12 Jun 2013 13:54:25 +0000 (16:54 +0300)]
client: Fix DBUS_TYPE_UINT16 pretty-printing
The previous pretty-printing fix causes another change to be
made for DBUS_TYPE_UINT16.
Jukka Rissanen [Wed, 12 Jun 2013 11:43:24 +0000 (14:43 +0300)]
dhcpv6: Send domain list option to server
OPTION_DOMAIN_LIST(24) was not sent to server.
Jukka Rissanen [Wed, 12 Jun 2013 08:02:59 +0000 (11:02 +0300)]
unit: Multiple collisions with different pools
Existing tests did not test this scenario:
* new address is registered to 192.168.0.2
* new address is registered to 192.168.1.2
* ippool is created to 192.168.2.1 (no collision)
* ippool is created to 192.168.3.1 (no collision)
* new address is registered to 192.168.3.1 (collision detected)
Jukka Rissanen [Wed, 12 Jun 2013 08:02:58 +0000 (11:02 +0300)]
unit: Test ippool collision differently
Existing tests did not test this scenario:
* new address is registered to 192.168.1.2
* ippool is created to 192.168.0.1 (no collision)
* ippool is created to 192.168.2.1 (there is a collision and the
code should skip the 192.168.1.1 range)
Jukka Rissanen [Wed, 12 Jun 2013 08:02:57 +0000 (11:02 +0300)]
ippool: Clear allocated block pointer at cleanup
Without this the unit tests might core dump as the allocated_block
pointer would point to already freed memory.
Jukka Rissanen [Wed, 12 Jun 2013 08:02:56 +0000 (11:02 +0300)]
ippool: Private address check was incorrect
Fixes BMC#25993
Jukka Rissanen [Fri, 7 Jun 2013 13:49:34 +0000 (16:49 +0300)]
service: Send proxy properties when connected or disconnected
Fixes BMC#26019
Jukka Rissanen [Fri, 7 Jun 2013 12:15:29 +0000 (15:15 +0300)]
technology: Offlinemode could not be disabled if no technology was powered
If all the technologies were powered off, then offline mode could
not be disabled.
Fixes BMC#26018
Daniel Wagner [Fri, 7 Jun 2013 11:41:13 +0000 (13:41 +0200)]
TODO: Mark GSequence removal done
Daniel Wagner [Fri, 7 Jun 2013 11:41:12 +0000 (13:41 +0200)]
service: Use GList instead of GSequence for service list
The hash table is now the owner of the service entry instead of the
service list.
Daniel Wagner [Fri, 7 Jun 2013 11:41:11 +0000 (13:41 +0200)]
session: Use GList instead of GSequence for service list
The hash table is now the owner of the service entry instead of
the service list.
Daniel Wagner [Fri, 7 Jun 2013 11:41:10 +0000 (13:41 +0200)]
session: Use service iterator instead of match/creation callbacks
When a new session is created we need to get the initial list
of services which match the session AllowedBearers criteria. As soon
the session is running add or removed services are tracked via the
notifier interface.
We concluded that exposing all the services is not really necessary
and therefore we are using currently two callbacks to get the initial
list. That exposes implementation details from session to service, that
is GSequence. We also need to expose the type 'struct service_entry'.
Instead doing so we are using an iterator and keep all the
implementation details in session.c.
Daniel Wagner [Fri, 7 Jun 2013 11:41:09 +0000 (13:41 +0200)]
service: Initialize tech_data
tech_data is allocated on the stack and is therefore not initilized
with NULL.
Patrik Flykt [Fri, 7 Jun 2013 06:58:33 +0000 (09:58 +0300)]
client: Avoid printing extra prompt on RequestInput
Patrik Flykt [Fri, 7 Jun 2013 05:25:25 +0000 (08:25 +0300)]
client: Read D-Bus string type only if argument is 'Type'
A basic type was always read independent of the argument type which
on some systems lead to a crash and on others only to a warning
printout.
Patrik Flykt [Mon, 3 Jun 2013 10:11:38 +0000 (13:11 +0300)]
client: Pretty-print D-Bus signed integers
To keep it more logical, rename the unsigned variable in the code.
Patrik Flykt [Mon, 3 Jun 2013 10:04:19 +0000 (13:04 +0300)]
client: Add VPN monitoring support
When adding VPN monitoring capabilities, also clean up the monitor code.
Patrik Flykt [Mon, 3 Jun 2013 07:59:56 +0000 (10:59 +0300)]
client: Add support for displaying VPN connections
Show a list of VPN connections known to the VPN daemon.
Also allow D-Bus path names to start with numbers, as it is fine with
the D-Bus library to define such path names. Fix up help command
pretty-printing as the VPN command is slightly longer.
Patrik Flykt [Mon, 3 Jun 2013 07:49:23 +0000 (10:49 +0300)]
client: Add VPN connection helper function
Add helper function for printing VPN connections. Show also configuration
and failure states using 'C' and 'F' as configuration might take some
time and failure conveys practical information to the user.
Patrik Flykt [Mon, 3 Jun 2013 07:27:38 +0000 (10:27 +0300)]
client: Add parameter to specify D-Bus service for method call
Patrik Flykt [Mon, 3 Jun 2013 07:20:20 +0000 (10:20 +0300)]
client: Add missing header file boilerplate
Jukka Rissanen [Tue, 4 Jun 2013 09:34:37 +0000 (12:34 +0300)]
dhcpv6: Make sure release message is sent
Register an empty Release callback so that the message will be sent.
Daniel Wagner [Fri, 31 May 2013 12:13:55 +0000 (14:13 +0200)]
build: Add session policy format document
Daniel Wagner [Fri, 31 May 2013 07:13:38 +0000 (09:13 +0200)]
doc: Document session policy file format
Daniel Wagner [Fri, 31 May 2013 07:13:37 +0000 (09:13 +0200)]
session-test: Add tests for session_policy_local
Use the UID as identification.
Daniel Wagner [Fri, 31 May 2013 07:13:36 +0000 (09:13 +0200)]
session_policy_local: Set session identification method
For SELinux we need to store the complete context for iptables
to work.
Daniel Wagner [Fri, 31 May 2013 07:13:35 +0000 (09:13 +0200)]
session: Add session identification method to config
The session core needs to the know which kind of session
identification method has been selected in the plugin in order
to use the right iptables rules etc.
Daniel Wagner [Fri, 31 May 2013 07:13:34 +0000 (09:13 +0200)]
session_policy_local: Retrieve UID/GID from session user
When the session core ask to create a configuration, then we
first ask the D-Bus server which UID/GID the session belongs to.
If possible we also ask for the SELinux context. Then we try
to figure out which file containts the configuration for
SElinux, UID or GID identification.
The order of matching preference is SELinux, UID and finally GID.
Daniel Wagner [Fri, 31 May 2013 07:13:33 +0000 (09:13 +0200)]
session_policy_local: Remove struct create_data
Use struct policy_data instead of struct create_data.
Daniel Wagner [Fri, 31 May 2013 07:13:32 +0000 (09:13 +0200)]
session_policy_local: Rework policy file handling
The old assumption was that a config file is associtated
with one session only. With introducing UID/GID support a policy
might be used for several sessions. Furthermore, it was assumed
that the file name is the key/ident to identify a session and
a file containts exactly one policy.
Here are the new rules for writing a policy file.
- A valid file name contains letters or numbers and must have a '.policy'
suffix.
- The file name has not semantical meaning
- A policy file may contain contain more than 1 policy
- Each policy entry starts with 'policy_'
- Each policy entry shall have one and exactly one valid key (e.g.
selinux)
The implementation has two main hash tables, file_hash and session_hash
which owns 'the file' respectively the session config. Additionally there
is a hash table which connects a policy with a session (selinux_hash).
Daniel Wagner [Fri, 31 May 2013 07:13:31 +0000 (09:13 +0200)]
session_policy_local: Add some more debug information
Daniel Wagner [Fri, 31 May 2013 07:13:30 +0000 (09:13 +0200)]
session_policy_local: Update session before unref policy
The update flag can be removed as it is no longer needed.
Daniel Wagner [Fri, 31 May 2013 07:13:29 +0000 (09:13 +0200)]
session_policy_local: Refactor SELinux context parser
g_strplit() will eventually strdup the tokens so no need to
strdup() 'context'. But we an ugly cast (from 'const unsigned char *'
to 'const char *') is needed for g_strsplit() to make the compiler happy.
Daniel Wagner [Fri, 31 May 2013 07:13:28 +0000 (09:13 +0200)]
session_policy_local: Do not handle small allocation
Let's remove the small allocations error path because glib will
abort on memory exhausting anyway. Basically we remove dead code.
Daniel Wagner [Fri, 31 May 2013 07:13:27 +0000 (09:13 +0200)]
session: Do not access stale entry pointers
When removing the entry clear all references towards it.
Daniel Wagner [Fri, 31 May 2013 07:13:26 +0000 (09:13 +0200)]
session: Add session argument to create_service_entry_cb
Remember which session this struct service_entry belongs to when
removing the entries again.
Patrik Flykt [Wed, 29 May 2013 10:28:40 +0000 (13:28 +0300)]
TODO: Support other time sources
Patrik Flykt [Tue, 21 May 2013 10:32:14 +0000 (13:32 +0300)]
timeserver: Periodically wake up to recheck timeservers
The current situation is that a failed timeserver name resolution
removes the timeserver immediately from the list of used timeservers
and failing to connect to the nameserver IP address removes the
timeserver after a 2 second delay. Currently no mechanism exists to
re-create the list of nameservers once the list has been exhausted or
the more preferred timeservers have been removed from it.
This implementation combats both problems where less used timeservers
further away end up being used despite a more optimal closer one
becoming available as well as the problem of exhausting the
nameserver list. This is done by periodially waking up and checking
the timeserver in use. If the timeserver in use is not the most
preferred one or the list of timeservers is empty, the timeserver
list is recreated and the timeserver polling procedure is restarted.
Daniel Wagner [Fri, 24 May 2013 13:27:01 +0000 (15:27 +0200)]
iptables: Fix memory leak when invoking xtables_find_match
xtables_find_match() returns two different kind of pointers.
The first type is pointing to the function pointer table loaded
via dlopen(). The second type is a copy (via plain malloc) of the
first type. xtables_find_match() marks the copies/clones with
m == m->next. So we need to free the struct xtables_match which
point back to themself.
Also fix the issue that we didn't handle multple match instances
at the same time.
The memory leak is only visible when having more than one match
of a kind.
Marcel Holtmann [Fri, 31 May 2013 01:15:29 +0000 (10:15 +0900)]
Release 1.15
Patrik Flykt [Wed, 29 May 2013 13:21:16 +0000 (16:21 +0300)]
config: Remove code implementing Protected config file setting
The code was relevant only for Manager.ProvisionService method call
which was removed a long time ago.
Patrik Flykt [Wed, 29 May 2013 13:21:15 +0000 (16:21 +0300)]
doc: Remove Protected description
The Protected setting was relevant only for Manager.ProvisionService
method call which was removed a long time ago.
Patrik Flykt [Wed, 29 May 2013 13:21:14 +0000 (16:21 +0300)]
vpn-config: Log a warning if the provider ident already exists
Also set the returned value appropriately when removing or adding
configuration files.
Patrik Flykt [Wed, 29 May 2013 13:21:13 +0000 (16:21 +0300)]
vpn-config: Remove obsolete protected code
For VPN connections created via configuration files the immutable flag
is set and it ensures no modifications are allowed. The protected
feature implementation was a left-over from service configuration code.
Removing the code fixes a bug where only VPN entries of different types
can be provisioned in the same provisioning file.
Daniel Wagner [Wed, 29 May 2013 08:00:30 +0000 (10:00 +0200)]
test-ippool: Shortcut exhausting allocation test
Instead really trying to allocate all possible 69888 blocks, let's
reserve the first two IP pools and then we only need to allocate
255 blocks. That should bring down the runtime considerable.
Patrik Flykt [Wed, 29 May 2013 06:25:58 +0000 (09:25 +0300)]
service: Update Domains property when Domains.Configuration changes
Domains property was not updated when Domains.Configuration was changed.
If Domains.Configuration is for example set to empty when using DHCP,
the Domains property is to be updated with the value configured via DHCP.
Fixes BMC#26010
Patrik Flykt [Wed, 29 May 2013 06:52:49 +0000 (09:52 +0300)]
service: Check service type before fetching interface index
For VPNs, the index is available from provider, for other services from
network.
Fixes BMC#26009
Patrik Flykt [Fri, 24 May 2013 11:38:01 +0000 (14:38 +0300)]
ipconfig: Use system set addresses for IPv4 property in 'manual' mode
Addresses and gateway for the service IPv4 property being used in the
system are available from ipconfig->system when the property is set to
'manual'.
Patrik Flykt [Fri, 24 May 2013 11:58:07 +0000 (14:58 +0300)]
client: Accept correctly spelled option name
Accept also correctly spelled version of 'preferred' option.
Patrik Flykt [Wed, 22 May 2013 09:21:36 +0000 (12:21 +0300)]
client: Fix minor issues in D-Bus path name checking
Patrik Flykt [Wed, 22 May 2013 09:21:35 +0000 (12:21 +0300)]
client: Fix index for IPv6 configuration option
Patrik Flykt [Wed, 22 May 2013 09:21:34 +0000 (12:21 +0300)]
client: Reserve space for trailing NULL in the array
Daniel Wagner [Tue, 21 May 2013 11:45:59 +0000 (13:45 +0200)]
session: Fix service2bearer to return a correct match all rule
Patrik Flykt [Tue, 21 May 2013 18:14:03 +0000 (21:14 +0300)]
doc: Remove documentation for Technology IdleTimeout property
IdleTimeout hasn't so far been implemented in any release and will be
handled by other means if needed.
Patrik Flykt [Mon, 20 May 2013 12:37:23 +0000 (15:37 +0300)]
service: Restart timeserver polling only for the default service
When timeservers are set, recreate timeserver polling list only if the
service is the the default one.
Patrik Flykt [Mon, 20 May 2013 09:56:29 +0000 (12:56 +0300)]
doc: Document the deprecated RemoveProvider method call
Fixes BMC#25958
Patrik Flykt [Fri, 17 May 2013 11:08:57 +0000 (14:08 +0300)]
test: Add test script for Clock API
Patrik Flykt [Fri, 17 May 2013 10:20:45 +0000 (13:20 +0300)]
clock: Implement load and save for Clock API properties
Load and save TimeUpdates and TimezoneUpdates Clock API properties.
Clock API Timeservers property is already handled by the timeserver
code.
Fixes BMC#25988
Patrik Flykt [Fri, 17 May 2013 07:40:30 +0000 (10:40 +0300)]
timeserver: Check the time update method
If the time update method is manual, no NTP time servers are returned.
Patrik Flykt [Fri, 17 May 2013 07:37:54 +0000 (10:37 +0300)]
clock: Export information about time update method
Patrik Flykt [Fri, 17 May 2013 12:02:45 +0000 (15:02 +0300)]
TODO: Add Clock API support for connmanctl
Tomasz Bursztyka [Fri, 17 May 2013 08:26:57 +0000 (11:26 +0300)]
wifi: Scan all stored hidden networks
Previously the number of scanned hidden WiFi networks was
restricted by the fast scan limit of the WiFi driver. This
patch takes into account the driver fast scan limit and will
scan for all configured hidden WiFi networks.
Thanks to Jukka for testing this.
Tomasz Bursztyka [Fri, 17 May 2013 11:45:00 +0000 (14:45 +0300)]
README: Update information about wpa_supplicant configuration
Jukka Rissanen [Thu, 16 May 2013 09:22:24 +0000 (12:22 +0300)]
TODO: DHCPv6 DECLINE message support
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.
Marcel Holtmann [Sun, 12 May 2013 07:17:17 +0000 (09:17 +0200)]
shared: Add helper for looking up debugfs mount point
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.
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==
Patrik Flykt [Wed, 8 May 2013 06:59:23 +0000 (09:59 +0300)]
client: Do service name syntax check when a name is specified
Justin Maggard [Tue, 7 May 2013 22:34:42 +0000 (15:34 -0700)]
Fix gcc compiler warning with -Wformat-security.
Cosmetic fix.
Marcel Holtmann [Tue, 7 May 2013 08:21:39 +0000 (01:21 -0700)]
Release 1.14
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.
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.
Jukka Rissanen [Mon, 6 May 2013 11:38:00 +0000 (14:38 +0300)]
client: Newline missing after printing scan error message
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
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.
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.
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.
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.
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.
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.
Patrik Flykt [Fri, 3 May 2013 14:15:11 +0000 (17:15 +0300)]
man: Update connman.conf.5 manual page to use TetheringTechnologies
Patrik Flykt [Mon, 29 Apr 2013 06:21:45 +0000 (09:21 +0300)]
main: Rename AllowedTetheringTechnologies to TetheringTechnologies
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.
Patrik Flykt [Fri, 3 May 2013 14:22:11 +0000 (17:22 +0300)]
AUTHORS: Mention Yann's contributions
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.
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.
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.
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.
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.
Patrik Flykt [Wed, 24 Apr 2013 10:25:45 +0000 (13:25 +0300)]
client: Add agent command