Daniel Wagner [Thu, 20 Sep 2012 14:47:14 +0000 (16:47 +0200)]
session: Update ConnnectionType documentation
Daniel Wagner [Thu, 20 Sep 2012 13:00:41 +0000 (15:00 +0200)]
session: Support no match in AllowedBearers
Up to now an empty AllowedBearers was interpreted as match any. Let's
make the match all explicit by expecting '*'. If an empty
AllowedBearers is provided, we interpret this as no match. In this
case the application will never get an online notifcation.
Daniel Wagner [Wed, 19 Sep 2012 14:53:09 +0000 (16:53 +0200)]
session_policy: Use bearer free function
Daniel Wagner [Wed, 26 Sep 2012 11:59:01 +0000 (13:59 +0200)]
session: Use g_slist_free_full to free bearer list
Daniel Wagner [Thu, 20 Sep 2012 14:04:19 +0000 (16:04 +0200)]
session: Add bearer list cleanup function
Daniel Wagner [Wed, 26 Sep 2012 08:58:58 +0000 (10:58 +0200)]
session: Remove unused functions
Basic types are not used for the configuration anymore.
Daniel Wagner [Wed, 26 Sep 2012 12:24:56 +0000 (14:24 +0200)]
session: Get config from policy plugin
Let's ask the plugin for the default configuration. AllowedBearers
and ConnectionType are not yet taken fromt the plugin. Instead
the user configuration will be taken.
Daniel Wagner [Wed, 26 Sep 2012 09:08:41 +0000 (11:08 +0200)]
session_policy: Implement create() and destroy()
Daniel Wagner [Wed, 19 Sep 2012 14:04:51 +0000 (16:04 +0200)]
session: Add callbacks for config creation and distruction
Whenever a new session is created, the core will ask the plugin
the create the config. This config can then be used by the core
to enforce the user settings.
The owner ship of this config stays in the plugin. Therefore, the plugin
will destroy is later.
Daniel Wagner [Wed, 19 Sep 2012 12:58:20 +0000 (14:58 +0200)]
session: Allow plugin access to connman_session_allowed_bearers_any
Daniel Wagner [Wed, 26 Sep 2012 11:52:30 +0000 (13:52 +0200)]
session: Move configuration bits to a public struct
Instead of passing basic datatypes between the session core and the
policy plugin, provide a complex data structure which holds
the session configuration.
Daniel Wagner [Wed, 26 Sep 2012 11:50:07 +0000 (13:50 +0200)]
session: Move bearer_info to session.h
Rename bearer_info to connman_session_bearer. Use also 'bearer' as local
variable instead of 'info' to avoid confusion with session_info.
Daniel Wagner [Wed, 19 Sep 2012 11:37:14 +0000 (13:37 +0200)]
session: Use session pointer instead of string id
Instead of passing in some string to identify we can use the
connman_session pointer. This allows us to keep the way sessions
are identfied away from the core, e.g. using the D-Bus owner id or
something else.
Daniel Wagner [Wed, 19 Sep 2012 11:28:06 +0000 (13:28 +0200)]
session: Move struct connman_session to session.h
Daniel Wagner [Wed, 26 Sep 2012 08:51:08 +0000 (10:51 +0200)]
session: Update session when policy plugin is added or removed
Daniel Wagner [Wed, 26 Sep 2012 08:48:26 +0000 (10:48 +0200)]
session: Assign config plugin to session
Let's pick the first plugin. If needed we can add some more smart code
later on.
Daniel Wagner [Wed, 26 Sep 2012 08:45:38 +0000 (10:45 +0200)]
session: Move get config calls after basic session initialization
The config call will need some context later on. Therefore, create
and initializate with the owner and add the watch on the ownership
before we ask the policy plugin for any configuration.
Daniel Wagner [Wed, 26 Sep 2012 08:44:50 +0000 (10:44 +0200)]
session: Maintain a sorted policy plugin list
Daniel Wagner [Wed, 26 Sep 2012 09:06:58 +0000 (11:06 +0200)]
session: Remove global configuration plugin
Implement support for per session configuration plugin. Obviously,
this patch itsel is not complete. The code for assigning a
configuration plugin to session->config follows in the next patches.
Daniel Wagner [Wed, 26 Sep 2012 09:05:46 +0000 (11:05 +0200)]
session: Add plugin priority
Support several session configuration plugins at runtime.
Set the default priority to low for the current policy plugin.
Daniel Wagner [Wed, 26 Sep 2012 09:04:55 +0000 (11:04 +0200)]
session: Move policy plugin code up
We don't want to have forwared decleration and the next patches
would make this necessary.
Daniel Wagner [Wed, 26 Sep 2012 09:03:29 +0000 (11:03 +0200)]
session: Rename session_config to session_policy
Daniel Wagner [Wed, 19 Sep 2012 12:50:02 +0000 (14:50 +0200)]
session: No need to free NULL list
Daniel Wagner [Mon, 17 Sep 2012 13:13:36 +0000 (15:13 +0200)]
session: Check D-Bus argumets for Changed method
Daniel Wagner [Tue, 18 Sep 2012 08:31:48 +0000 (10:31 +0200)]
unit: Update session unit test to API changes
Daniel Wagner [Tue, 18 Sep 2012 08:28:17 +0000 (10:28 +0200)]
session: Remove AvoidHandover implementation
Daniel Wagner [Tue, 18 Sep 2012 08:27:46 +0000 (10:27 +0200)]
session: Remove AvoidHandover documentation
The AvoidHandover boolean was there to fine tune the selection
algorithm in ConnMan. It was never implemented. Let's get rid
for the time beeing. If there is a real need for it we should
implemented this setting through the configuration plugin.
Tomasz Bursztyka [Wed, 26 Sep 2012 10:55:39 +0000 (13:55 +0300)]
manager: Manage properly the pending message for session mode
Patrik Flykt [Mon, 24 Sep 2012 10:43:50 +0000 (13:43 +0300)]
README: Mention readline and command line client disable switch
Jukka Rissanen [Fri, 21 Sep 2012 12:50:09 +0000 (15:50 +0300)]
build: Add manual pages for connman and config file
Jukka Rissanen [Mon, 17 Sep 2012 13:43:55 +0000 (16:43 +0300)]
resolver: Make sure we do not use already removed timer
Jukka Rissanen [Mon, 17 Sep 2012 13:43:53 +0000 (16:43 +0300)]
resolver: Do not touch IPv4 servers in redo case
The name server refresh should be only done for IPv6
nameservers.
Jukka Rissanen [Mon, 17 Sep 2012 13:43:52 +0000 (16:43 +0300)]
dnsproxy: Remove AI_PASSIVE for connected socket
The AI_PASSIVE is useless here because the server address
is always known.
Jukka Rissanen [Mon, 17 Sep 2012 13:43:51 +0000 (16:43 +0300)]
dnsproxy: Set recipient address when sending msg to DNS server
There has been cases where send() is returning EINVAL even though
there is a connected the socket. So use sendto() instead and supply
the destination address when sending.
Jukka Rissanen [Mon, 24 Sep 2012 11:44:31 +0000 (14:44 +0300)]
ipconfig: Set default IPv6 method according to kernel IPv6 support
If kernel does not support IPv6, then turn default ipconfig
method OFF. If kernel supports IPv6, then the default is AUTO
meaning that we try to send router solicitation messages.
Jukka Rissanen [Mon, 24 Sep 2012 11:44:30 +0000 (14:44 +0300)]
inet: Add function to check if IPv6 is supported by kernel
Jukka Rissanen [Fri, 21 Sep 2012 12:53:55 +0000 (15:53 +0300)]
client: Show ready and online state correctly
Patrik Flykt [Mon, 24 Sep 2012 09:33:59 +0000 (12:33 +0300)]
AUTHORS: Mention Johannes' and Justin's contributions
Justin Maggard [Thu, 20 Sep 2012 23:12:36 +0000 (16:12 -0700)]
client: Fix AutoConnect configuration
Changing the AutoConnect setting via connmanctl does not work, due to the
mistaken use of || instead of &&.
This patch fixes the issue, and tries to make things a little more readable.
Johannes Berg [Fri, 21 Sep 2012 07:38:15 +0000 (10:38 +0300)]
rtnl: Ignore netlink messages generated by wext
ConnMan should just ignore netlink messages generated by wext
as described in commit
4997f6e38f34effc00179e849dee0dc2e2263d3a.
Handle wext message detection using the IFLA_WIRELESS type
because the ifinfomsg ifi_change field is reserved for future
use and code using it for wext detection has been removed.
Artem Bityutskiy [Thu, 20 Sep 2012 11:53:51 +0000 (14:53 +0300)]
wifi: Fix tethering with kernel 3.5
Wifi tethering works with kernel 3.4, but not with 3.5. Bisecting
showed that the following kernel patch causes the breakage:
"3edaf3e mac80211: manage AP netdev carrier state".
Running connman with debugging enabled showed that in case of 3.4
we have the following sequence of RTM_NEWLINK events from the kernel:
1. IFF_UP not set, ifi_change=1
2. IFF_UP,IFF_LOWER_UP, ifi_change=1
which makes connman do the following:
connmand[210]: plugins/wifi.c:wifi_newlink() index 4 flags 4098 change 1
connmand[210]: plugins/wifi.c:wifi_newlink() interface down
connmand[210]: plugins/wifi.c:wifi_newlink() index 4 flags 69635 change 1
connmand[210]: plugins/wifi.c:wifi_newlink() interface up
connmand[210]: plugins/wifi.c:wifi_newlink() carrier on
connmand[210]: plugins/wifi.c:handle_tethering() index 4 bridge tether
However, in 3.5 we have the following sequents of events from the kernel:
1. IFF_UP, ifi_change=1
2. IFF_UP,IFF_LOWER_UP, ifi_change=0
which makes connman do the following:
connmand[493]: plugins/wifi.c:wifi_newlink() index 4 flags 4099 change 1
connmand[493]: plugins/wifi.c:wifi_newlink() interface up
connmand[493]: plugins/wifi.c:wifi_newlink() index 4 flags 69635 change 0
The root-cause for it is that connman handles the "ifi_change" flag
incorrectly. Connman interprets it as "if non-zero, there was some change",
which is wrong. According to RFC 3549, it is "reserved for future use.
Must be set to 0xFFFFFFFF". Thus, just remove that check, which makes
tethering work.
Marcel Holtmann [Wed, 19 Sep 2012 13:24:14 +0000 (15:24 +0200)]
Release 1.7
Marcel Holtmann [Wed, 19 Sep 2012 13:16:30 +0000 (15:16 +0200)]
TODO: Add entry for multiple agent support
Marcel Holtmann [Wed, 19 Sep 2012 12:31:52 +0000 (14:31 +0200)]
doc: Remove copies of DNS and DHCP specifications
Marcel Holtmann [Wed, 19 Sep 2012 12:28:08 +0000 (14:28 +0200)]
build: Include --enable-session-policy when building distribution
Marcel Holtmann [Wed, 19 Sep 2012 12:21:20 +0000 (14:21 +0200)]
doc: Remove interactive command from client documentation
Marcel Holtmann [Wed, 19 Sep 2012 12:20:45 +0000 (14:20 +0200)]
client: Enter interactive shell when no command is specified
Marcel Holtmann [Tue, 18 Sep 2012 10:55:22 +0000 (12:55 +0200)]
build: Don't install connmanctl.1 manual page for now
Patrik Flykt [Mon, 17 Sep 2012 10:36:41 +0000 (13:36 +0300)]
TODO: Add two logging related tasks
Patrik Flykt [Fri, 14 Sep 2012 07:52:37 +0000 (10:52 +0300)]
client: Add printout about connmanctl experimental status
The arguments and output may see changes, warn users that the
current ones are experimental.
Patrik Flykt [Fri, 14 Sep 2012 07:38:34 +0000 (10:38 +0300)]
TODO: Update TODO with connmanctl agent mode entry
Patrik Flykt [Fri, 14 Sep 2012 07:30:50 +0000 (10:30 +0300)]
client: Change 'tech' to 'technologies'
Update argument and man page to use 'technologies'
Tudor Marcu [Wed, 12 Sep 2012 22:06:02 +0000 (15:06 -0700)]
AUTHORS: Add Tudor and Ceara to AUTHORS file
Tudor Marcu [Wed, 12 Sep 2012 22:06:01 +0000 (15:06 -0700)]
Update gitignore with new CLI name.
Ceara Chewning [Wed, 12 Sep 2012 22:06:00 +0000 (15:06 -0700)]
client: Update Makefile.am and add new command line client main file
The new main.c uses the previously added services, technology, manager,
interactive, and monitor files to create the connmanctl command line
interface. It is able to display properties of services and technologies,
and set/enable them.
Ceara Chewning [Wed, 12 Sep 2012 22:05:59 +0000 (15:05 -0700)]
configure.ac: Add readline check
Ceara Chewning [Wed, 12 Sep 2012 22:05:58 +0000 (15:05 -0700)]
doc: Add manpage for command line client
Tudor Marcu [Wed, 12 Sep 2012 22:05:57 +0000 (15:05 -0700)]
dbus.h: Update include/dbus.h with more container support
Add a couple more functions for opening D-Bus message containers
with different signatures currently used by the command line client.
Tudor Marcu [Wed, 12 Sep 2012 22:05:56 +0000 (15:05 -0700)]
client: Add interactive mode support
When the client is started with the 'interactive' option, it drops
into interactive shell mode. The interactive commands are handled
using readline. All of the commands (except interactive) can be
used in this mode.
Ceara Chewning [Wed, 12 Sep 2012 22:05:55 +0000 (15:05 -0700)]
client: Implement command line client commands
Implement all of the command handling that connmanctl uses. Both the
main program and interactive mode should use the same commands, thus
there is no separation between the abilities of the two modes.
Ceara Chewning [Wed, 12 Sep 2012 22:05:54 +0000 (15:05 -0700)]
client: Event monitoring support for the command line client
The command line client is able to run as a monitor to ConnMan. When
the client is started with the 'monitor' option, it will wait for any
signals from ConnMan and display them. It is useful for realtime
verbose output of ConnMan D-Bus events.
Tudor Marcu [Wed, 12 Sep 2012 22:05:53 +0000 (15:05 -0700)]
client: Manager API command line client support
Support connecting/disconnecting services, list and set ConnMan properties.
'get_message()' is used to send any method request to ConnMan, and it
returns the reply that several functions use.
Ceara Chewning [Wed, 12 Sep 2012 22:05:52 +0000 (15:05 -0700)]
client: Technology API command line client support
Support Technology API functionality such as scanning, parsing and
setting and receiving technology properties. Using 'match_tech_name()'
the command line utility can verify if a given technology exists on
the system.
Tudor Marcu [Wed, 12 Sep 2012 22:05:51 +0000 (15:05 -0700)]
client: Service API command line client support
Support Service API message D-Bus message parsing. Functions are
provided for configuring properties, iterating through D-Bus messages
and extracting properties in a useful manner.
Daniel Wagner [Thu, 13 Sep 2012 13:30:27 +0000 (15:30 +0200)]
build: Add session-policy plugin to default configuration
Daniel Wagner [Thu, 13 Sep 2012 13:30:26 +0000 (15:30 +0200)]
session: Fix configuration plugin build
Instead of allow the user configuring which plugin should build and used
via issuing 'configure --with-configplugin=foo' add explicit
enable flags 'configure --enable-session-policy'.
Also with this patch, the name is changed from session-default to
session-policy.
Patrik Flykt [Thu, 13 Sep 2012 10:35:53 +0000 (13:35 +0300)]
test: Disable tethering test script takes exactly one argument
With one argument, len(sys.argv) is equal to 2.
Patrik Flykt [Thu, 13 Sep 2012 08:32:05 +0000 (11:32 +0300)]
test: Correctly check number of test script arguments
len(sys.argv) gives the number of arguments including the
name of the command.
Fixes BMC#25722
Tomasz Bursztyka [Thu, 13 Sep 2012 09:41:54 +0000 (12:41 +0300)]
technology: Returns the right error when setting tethering
Fixes BMC#25721
Patrik Flykt [Fri, 7 Sep 2012 11:55:10 +0000 (14:55 +0300)]
tethering: Reset the tethering refcount on error
Decrease the refcount with one on error.
Jukka Rissanen [Tue, 11 Sep 2012 12:01:16 +0000 (15:01 +0300)]
ipconfig: Catch interface name changes
Update the ipdevice interface name if it is changed by udev.
Tomasz Bursztyka [Thu, 13 Sep 2012 07:32:23 +0000 (10:32 +0300)]
agent: Fixes refcounting issue
Since service is referenced already in the message queue, there is no need
to reference it also in the callback data: this might lead to an over refcount
issue if the queue message is canceled before receiving any answer to it.
(callback's data refcount is still there).
Patrik Flykt [Fri, 7 Sep 2012 08:00:58 +0000 (11:00 +0300)]
proxy: Set lookup to NULL if the tokens did not match
Patrik Flykt [Fri, 7 Sep 2012 08:00:57 +0000 (11:00 +0300)]
wispr: Add backpointer to wispr portal structure
When calling free_connman_wispr_portal_context(), the context is
freed. Add a backpointer to the wispr portal context in order to
clear the context from the wispr_portal struct.
Patrik Flykt [Fri, 7 Sep 2012 08:00:56 +0000 (11:00 +0300)]
gweb: Don't use debug functionality after possible free
When the callback has been called, the whole structure might be
freed. Thus don't call the debug function tied to the structure.
Artem Bityutskiy [Fri, 7 Sep 2012 07:04:40 +0000 (10:04 +0300)]
tethering: Fix error path in __connman_tethering_set_enabled()
In some cases we did not destroy the bridge and ip pool.
Artem Bityutskiy [Fri, 7 Sep 2012 06:04:38 +0000 (09:04 +0300)]
tethering: Re-add error message about missing bridge functionality
Commit 4fe07df removed an error message about missing bridge functionality.
Return it back.
Artem Bityutskiy [Wed, 5 Sep 2012 14:52:45 +0000 (17:52 +0300)]
tethering: Fix bridge module loading problem
Connman tries to check if bridging is supported by the kernel by checking
whether "/proc/sys/net/bridge" is present. If the bridge is a kernel
module which is not already loaded, then tethering cannot be enabled.
Instead of checking for the file we invoke the "get bridge version" socket
ioctl and the kernel will handle module loading issues - if the bridge
module is not loaded, it will first load it, and then check the version.
Jukka Rissanen [Wed, 5 Sep 2012 09:10:26 +0000 (12:10 +0300)]
technology: Fix memory leak as the tethering strings were not freed
Danny Jeongseok Seo [Mon, 3 Sep 2012 11:45:19 +0000 (20:45 +0900)]
config: Call g_clear_error to prevent memory leak
Jukka Rissanen [Tue, 4 Sep 2012 08:14:54 +0000 (11:14 +0300)]
test: set-timeservers was missing from makefile
Patrik Flykt [Mon, 3 Sep 2012 11:17:15 +0000 (14:17 +0300)]
agent: Always clean up and unref on agent shutdown
Patrik Flykt [Mon, 3 Sep 2012 11:17:14 +0000 (14:17 +0300)]
agent: Cancel agent requests
Clean up any queued Agent API messages when the agent disappears or
the service is disconnected. Send cancel to the agent on D-Bus
timeout.
Patrik Flykt [Mon, 3 Sep 2012 11:17:13 +0000 (14:17 +0300)]
agent: Implement Agent API Cancel() method call
Clean up the queue and cancel the current message at the agent, if
any. Split out the actual cancel message sending as it will be used
separately from the rest of the code.
Patrik Flykt [Mon, 3 Sep 2012 11:17:12 +0000 (14:17 +0300)]
agent: Use the Agent queueing functions when sending requests
Patrik Flykt [Mon, 3 Sep 2012 11:17:11 +0000 (14:17 +0300)]
agent: Implement Agent API message queueing
Add functions for queuing Agent API messages and sending the
first one when there is no message processed by the agent.
Handle D-Bus pending call replies and simplify the D-Bus reply
processing by handing the message to the callback function.
Patrik Flykt [Thu, 30 Aug 2012 10:56:14 +0000 (13:56 +0300)]
Use g_slist_prepend() where appropriate
Convert usage of g_slist_append() to g_slist_prepend() where
appropriate. gdbus, dnsproxy, resolver, rtnl, session and session
unit test have ordering requirements and thus not touched.
Daniel Wagner [Mon, 13 Aug 2012 08:40:33 +0000 (10:40 +0200)]
session: Do not track disconnect reason
All session stay in free ride mode all the time. We still
have to know if we have called connect on a service. Therefore
we need to distiguish between reason CONNECT and FREE_RIDE.
Daniel Wagner [Mon, 13 Aug 2012 08:40:32 +0000 (10:40 +0200)]
session: Reorder D-Bus documentation
Reorder and group the settings, first the read only values
and then the ones which can be changed.
Daniel Wagner [Mon, 13 Aug 2012 08:40:31 +0000 (10:40 +0200)]
session: Move RoamingPolicy to configuration plugin
The RoamingPolicy setting which should be set by the platform integrator
and not by the application developper is moved the configuration plugin.
Daniel Wagner [Mon, 13 Aug 2012 08:40:30 +0000 (10:40 +0200)]
session: Remove RoamingPolicy documetation
Remove this setting from the D-Bus API and move to the configuration
plugin.
Daniel Wagner [Mon, 13 Aug 2012 08:40:29 +0000 (10:40 +0200)]
session: Move EmergencyCall to configuration plugin
Instead fallback using the configuration plugin for selecting
the emergency application.
Now we don't have to update all other sessions which makes
the whole code logic more straight forward. If a session is
marked as an emergency call and this application calls
Connect()/Disconnect() it will succedd and block all other
sessions when they try to call Connect() or Disconnect().
Daniel Wagner [Mon, 13 Aug 2012 08:40:28 +0000 (10:40 +0200)]
session: Remove EmergencyCall documentation
The EmergencyCall setting which should be set by the platform integrator
and not by the application developer is moved the configuration plugin.
Daniel Wagner [Mon, 13 Aug 2012 08:40:27 +0000 (10:40 +0200)]
session: Remove StayConnected implementation
Daniel Wagner [Mon, 13 Aug 2012 08:40:26 +0000 (10:40 +0200)]
session: Remove StayConnected documentation
This setting is implicitly already available through AutoConnect.
Having yet another way to express this doesn't make it work any better.
Daniel Wagner [Mon, 13 Aug 2012 08:40:25 +0000 (10:40 +0200)]
session: Move Priority to configuration plugin
The Priority setting which should be set by the platform integrator
and not by the application developer is moved the configuration plugin.
Daniel Wagner [Mon, 13 Aug 2012 08:40:24 +0000 (10:40 +0200)]
session: Remove Priority documentation
Remove this setting from the D-Bus API and move it to the
configuration plugin.
Daniel Wagner [Mon, 13 Aug 2012 08:40:23 +0000 (10:40 +0200)]
session: Add configuration plugin
Daniel Wagner [Mon, 13 Aug 2012 08:40:22 +0000 (10:40 +0200)]
session: Remove SessionMarker implementation
Daniel Wagner [Mon, 13 Aug 2012 08:40:21 +0000 (10:40 +0200)]
session: Remove SessionMarker documentation
SO_MARK can only be set if the application has the CAP_NET_ADMIN
capability. We don't want to give that to all application for
good reasons and thus this approach won't work. Also touching all
applications to get this feature working is not a good idea. We
are going to use a cgroup controller to set SO_MARK and therefore
we don't need it in the Session API.