<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman">
    <title>gmane.comp.handhelds.moblin.connman</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14241"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14240"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14239"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14238"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14237"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14236"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14235"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14234"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14233"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14232"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14231"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14230"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14229"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14228"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14227"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14226"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14225"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14224"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14223"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14222"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14241">
    <title>RE: wifi: scan all stored hidden networks relevantly</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14241</link>
    <description>&lt;pre&gt;
Tomasz,

I found this surprising. Why did the callback change from scan_callback to scan_callback_hidden? Isn't the appropriate closure for the scan, scan_callback?

Best,

Grant
&lt;/pre&gt;</description>
    <dc:creator>Grant Erickson</dc:creator>
    <dc:date>2013-05-21T00:27:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14240">
    <title>[PATCH] service: Restart timeserver polling only for the default service</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14240</link>
    <description>&lt;pre&gt;When timeservers are set, restart timeserver polling only if the service
is the the default one.
---
 src/service.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/service.c b/src/service.c
index bba548e..9e79b03 100644
--- a/src/service.c
+++ b/src/service.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3210,7 +3210,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static DBusMessage *set_property(DBusConnection *conn,
 service_save(service);
 timeservers_configuration_changed(service);
 
-__connman_timeserver_sync(service);
+if (service == __connman_service_get_default())
+__connman_timeserver_sync(service);
+
 } else if (g_str_equal(name, "Domains.Configuration") == TRUE) {
 DBusMessageIter entry;
 GString *str;
&lt;/pre&gt;</description>
    <dc:creator>Patrik Flykt</dc:creator>
    <dc:date>2013-05-20T12:37:23</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14239">
    <title>[PATCH] doc: Document the deprecated RemoveProvider method call</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14239</link>
    <description>&lt;pre&gt;Fixes BMC#25958
---
 doc/manager-api.txt |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/doc/manager-api.txt b/doc/manager-api.txt
index ed23c8d..ad07c3d 100644
--- a/doc/manager-api.txt
+++ b/doc/manager-api.txt
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -64,6 +64,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; Methodsdict GetProperties()
 
 Possible Errors: [service].Error.InvalidArguments
 
+void RemoveProvider(object path)[deprecated]
+
+Remove a VPN specified by the object path.
+
 void RegisterAgent(object path)
 
 Register new agent for handling user requests.
&lt;/pre&gt;</description>
    <dc:creator>Patrik Flykt</dc:creator>
    <dc:date>2013-05-20T09:59:10</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14238">
    <title>Re: [PATCH] Tethering: Add the open Wi-Fi Access Point</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14238</link>
    <description>&lt;pre&gt;Hi,

NACK from me on this one.

I will pass the discussion whether we want or not such feature.

I will concentrate only on the patch:


This is totally bogus: plugins should _never_ override user's settings.
If you want to be able to reset such properties, you will have to let it 
possible through SetProperty() in technology DBus API, nothing else.


This would be useless if you apply my previous comment about SetProperty().


Ok.

Tomasz
&lt;/pre&gt;</description>
    <dc:creator>Tomasz Bursztyka</dc:creator>
    <dc:date>2013-05-20T09:58:41</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14237">
    <title>[PATCH] Tethering: Add the open Wi-Fi Access Point</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14237</link>
    <description>&lt;pre&gt;Sometimes users need create the open Wi-Fi Access Point

---
 include/technology.h |    2 ++
 plugins/wifi.c       |    1 +
 src/technology.c     |   17 +++++++++++++++--
 3 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/include/technology.h b/include/technology.h
index 9fe994c..1d9b333 100644
--- a/include/technology.h
+++ b/include/technology.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -36,6 +36,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; extern "C" {
 
 struct connman_technology;
 
+void connman_technology_reset_tethering_properties(
+struct connman_technology *technology);
 void connman_technology_tethering_notify(struct connman_technology *technology,
 connman_bool_t enabled);
 int connman_technology_set_regdom(const char *alpha2);
diff --git a/plugins/wifi.c b/plugins/wifi.c
index 5f07869..7960da3 100644
--- a/plugins/wifi.c
+++ b/plugins/wifi.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2035,6 +2035,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int tech_set_tethering(struct connman_technology *technology,
 }
 
 connman_technology_tethering_notify(technology, FALSE);
+connman_technology_reset_tethering_properties(techn&lt;/pre&gt;</description>
    <dc:creator>chengyix.zhao&lt; at &gt;gmail.com</dc:creator>
    <dc:date>2013-05-20T09:42:42</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14236">
    <title>Re: [PATCH 0/4] Timeserver handling and property saving</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14236</link>
    <description>&lt;pre&gt;
Applied with v2 for patch 3/4.

Patrik
&lt;/pre&gt;</description>
    <dc:creator>Patrik Flykt</dc:creator>
    <dc:date>2013-05-20T09:41:31</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14235">
    <title>[PATCH v2 3/4] clock: Implement Load and save for Clock API properties</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14235</link>
    <description>&lt;pre&gt;Load and save TimeUpdates and TimezoneUpdates Clock API  properties.
Clock API Timeservers property is already handled by the timeserver
code.

Fixes BMC#25988
---

v2: when loading, use variables to hold the enum and set the main property
    if the values are not *_ UNKNOWN
    This way the startup default value is assigned in one place only

 src/clock.c |   62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/src/clock.c b/src/clock.c
index 1c16d40..2ce61d9 100644
--- a/src/clock.c
+++ b/src/clock.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -88,6 +88,65 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static enum timezone_updates string2timezone_updates(const char *value)
         return TIMEZONE_UPDATES_UNKNOWN;
 }
 
+static void clock_properties_load(void)
+{
+GKeyFile *keyfile;
+char *str;
+enum time_updates time_value;
+enum timezone_updates timezone_value;
+
+keyfile = __connman_storage_load_global();
+if (keyfile == NULL)
+return;
+
+str = g_key_file_get_string(keyfile, "global", "TimeUpdates", NULL);
+
+time_value&lt;/pre&gt;</description>
    <dc:creator>Patrik Flykt</dc:creator>
    <dc:date>2013-05-20T09:24:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14234">
    <title>Re: [PATCH] TODO: DHCPv6 DECLINE message support</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14234</link>
    <description>&lt;pre&gt;
Applied, thanks!

Patrik
&lt;/pre&gt;</description>
    <dc:creator>Patrik Flykt</dc:creator>
    <dc:date>2013-05-17T12:22:49</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14233">
    <title>Re: [PATCH v2] wifi: scan all stored hidden networks relevantly</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14233</link>
    <description>&lt;pre&gt;
Applied, thanks!

Patrik
&lt;/pre&gt;</description>
    <dc:creator>Patrik Flykt</dc:creator>
    <dc:date>2013-05-17T12:22:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14232">
    <title>Re: [PATCH v2] README: update information about wpa_supplicant built config</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14232</link>
    <description>&lt;pre&gt;
Applied, thanks!

Patrik
&lt;/pre&gt;</description>
    <dc:creator>Patrik Flykt</dc:creator>
    <dc:date>2013-05-17T12:21:45</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14231">
    <title>[PATCH 2/4] timeserver: Check the time update method</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14231</link>
    <description>&lt;pre&gt;If the time update method is manual, no NTP time servers are returned.
---
 src/timeserver.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/timeserver.c b/src/timeserver.c
index f934b58..970b8eb 100644
--- a/src/timeserver.c
+++ b/src/timeserver.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -182,6 +182,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; GSList *__connman_timeserver_get_all(struct connman_service *service)
 char **fallback_ts;
 int index, i;
 
+if (__connman_clock_timeupdates() == TIME_UPDATES_MANUAL)
+return NULL;
+
 service_ts_config = connman_service_get_timeservers_config(service);
 
 /* First add Service Timeservers.Configuration to the list */
&lt;/pre&gt;</description>
    <dc:creator>Patrik Flykt</dc:creator>
    <dc:date>2013-05-17T11:53:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14230">
    <title>[PATCH 0/4] Timeserver handling and property saving</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14230</link>
    <description>&lt;pre&gt;
Hi,

The two first patches make timeserver handling use TimeUpdates Clock API
property to decide whether to enable NTP timeservers or not.

The third patch adds save and load support for TimeUpdates and
TimezoneUpdates properties so that the desired auto/manual timeserver
handling will be remebered over restarts.

The fourth patch adds a quick test scrip to set these two Clock API
properties.

Cheers,

Patrik


Patrik Flykt (4):
  clock: Export information about time update method
  timeserver: Check the time update method
  clock: Implement Load and save for Clock API properties
  test: Add test script for Clock API

 Makefile.am      |    3 ++-
 src/clock.c      |   71 +++++++++++++++++++++++++++++++++++++++++++++++++-----
 src/connman.h    |    7 ++++++
 src/timeserver.c |    3 +++
 test/set-clock   |   32 ++++++++++++++++++++++++
 5 files changed, 109 insertions(+), 7 deletions(-)
 create mode 100755 test/set-clock

&lt;/pre&gt;</description>
    <dc:creator>Patrik Flykt</dc:creator>
    <dc:date>2013-05-17T11:53:25</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14229">
    <title>[PATCH 1/4] clock: Export information about time update method</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14229</link>
    <description>&lt;pre&gt;---
 src/clock.c   |   11 +++++------
 src/connman.h |    7 +++++++
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/clock.c b/src/clock.c
index e2cc19f..1c16d40 100644
--- a/src/clock.c
+++ b/src/clock.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -29,12 +29,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 #include "connman.h"
 
-enum time_updates {
-TIME_UPDATES_UNKNOWN = 0,
-TIME_UPDATES_MANUAL  = 1,
-TIME_UPDATES_AUTO    = 2,
-};
-
 enum timezone_updates {
 TIMEZONE_UPDATES_UNKNOWN = 0,
 TIMEZONE_UPDATES_MANUAL  = 1,
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -94,6 +88,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static enum timezone_updates string2timezone_updates(const char *value)
         return TIMEZONE_UPDATES_UNKNOWN;
 }
 
+enum time_updates __connman_clock_timeupdates(void)
+{
+return time_updates_config;
+}
+
 static void append_timeservers(DBusMessageIter *iter, void *user_data)
 {
 int i;
diff --git a/src/connman.h b/src/connman.h
index db84962..1d9f077 100644
--- a/src/connman.h
+++ b/src/connman.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -56,6 +56,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; DBusMessage *__connman_error_invalid_property(DBusMessage *msg);
 int __connman_manager_init(void);
 void __&lt;/pre&gt;</description>
    <dc:creator>Patrik Flykt</dc:creator>
    <dc:date>2013-05-17T11:53:26</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14228">
    <title>[PATCH 3/4] clock: Implement Load and save for Clock API properties</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14228</link>
    <description>&lt;pre&gt;Load and save TimeUpdates and TimezoneUpdates Clock API  properties.
Clock API Timeservers property is already handled by the timeserver
code.

Fixes BMC#25988
---
 src/clock.c |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/src/clock.c b/src/clock.c
index 1c16d40..990c80a 100644
--- a/src/clock.c
+++ b/src/clock.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -88,6 +88,63 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static enum timezone_updates string2timezone_updates(const char *value)
         return TIMEZONE_UPDATES_UNKNOWN;
 }
 
+static void clock_properties_load(void)
+{
+GKeyFile *keyfile;
+char *str;
+
+keyfile = __connman_storage_load_global();
+if (keyfile == NULL)
+return;
+
+str = g_key_file_get_string(keyfile, "global", "TimeUpdates", NULL);
+
+time_updates_config = string2time_updates(str);
+if (time_updates_config == TIME_UPDATES_UNKNOWN)
+time_updates_config = TIME_UPDATES_AUTO;
+
+g_free(str);
+
+str = g_key_file_get_string(keyfile, "global", "TimezoneUpdates",
+NULL);
+
+timezone_updates_con&lt;/pre&gt;</description>
    <dc:creator>Patrik Flykt</dc:creator>
    <dc:date>2013-05-17T11:53:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14227">
    <title>[PATCH 4/4] test: Add test script for Clock API</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14227</link>
    <description>&lt;pre&gt;---
 Makefile.am    |    3 ++-
 test/set-clock |   32 ++++++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+), 1 deletion(-)
 create mode 100755 test/set-clock

diff --git a/Makefile.am b/Makefile.am
index 04677ac..f05b755 100644
--- a/Makefile.am
+++ b/Makefile.am
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -331,7 +331,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; test_scripts = test/get-state test/list-services \
 test/test-session test/test-supplicant \
 test/test-new-supplicant test/service-move-before \
 test/set-global-timeservers test/get-global-timeservers \
-test/set-nameservers test/set-domains test/set-timeservers
+test/set-nameservers test/set-domains test/set-timeservers \
+test/set-clock
 
 test_scripts += test/vpn-connect test/vpn-disconnect test/vpn-get \
 test/monitor-vpn test/vpn-property
diff --git a/test/set-clock b/test/set-clock
new file mode 100755
index 0000000..a9db3e3
--- /dev/null
+++ b/test/set-clock
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,32 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+#!/usr/bin/python
+
+import sys
+import dbus
+
+def print_usage():
+print "Usage: %s TimeUpdates|TimezoneUpdates manua&lt;/pre&gt;</description>
    <dc:creator>Patrik Flykt</dc:creator>
    <dc:date>2013-05-17T11:53:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14226">
    <title>[PATCH v2] README: update information about wpa_supplicant built config</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14226</link>
    <description>&lt;pre&gt;---

Small typo fixed

 README | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/README b/README
index bfb246a..161c535 100644
--- a/README
+++ b/README
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -274,14 +274,21 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; CONFIG_WPS=y
 CONFIG_AP=y
 CONFIG_CTRL_IFACE_DBUS_NEW=y
 
-and, add:
+add:
 
 CONFIG_BGSCAN_SIMPLE=y
 
 This last option will enable the support of background scanning while being
 connected, which is necessary when roaming on wifi.
 
-It is recommended to use wpa_supplicant 0.8.x or 1.x or later.
+and finally:
+
+CONFIG_AUTOSCAN_EXPONENTIAL=y
+
+This will enable the exact same function as bgscan but while being
+disconnected.
+
+It is recommended to use wpa_supplicant 1.x or later.
 
 
 VPN
&lt;/pre&gt;</description>
    <dc:creator>Tomasz Bursztyka</dc:creator>
    <dc:date>2013-05-17T11:45:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14225">
    <title>[PATCH v4 11/12] session_policy_local: Set session identification method</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14225</link>
    <description>&lt;pre&gt;From: Daniel Wagner &amp;lt;daniel.wagner&amp;lt; at &amp;gt;bmw-carit.de&amp;gt;

For SELinux we need to store the complete context for iptables
to work.
---
 plugins/session_policy_local.c | 44 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 43 insertions(+), 1 deletion(-)

diff --git a/plugins/session_policy_local.c b/plugins/session_policy_local.c
index d9f9aef..8a25c3c 100644
--- a/plugins/session_policy_local.c
+++ b/plugins/session_policy_local.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -88,6 +88,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct policy_group {
 /* A struct policy_config object is created and owned by a session. */
 struct policy_config {
 char *selinux;
+char *selinux_context;
 char *uid;
 GSList *gids;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -173,12 +174,18 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void finish_create(struct policy_config *policy,
 group = g_hash_table_lookup(selinux_hash, policy-&amp;gt;selinux);
 if (group != NULL) {
 set_policy(policy, group);
+
+policy-&amp;gt;config-&amp;gt;id_type = CONNMAN_SESSION_ID_TYPE_LSM;
+policy-&amp;gt;config-&amp;gt;id = g_strdup(policy-&amp;gt;selinux_context);
 goto done;
 }
 
 group = g_hash_table_lookup(uid_hash, polic&lt;/pre&gt;</description>
    <dc:creator>Daniel Wagner</dc:creator>
    <dc:date>2013-05-17T11:08:33</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14224">
    <title>[PATCH v4 09/12] session_policy_local: Retrieve UID/GID from session user</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14224</link>
    <description>&lt;pre&gt;From: Daniel Wagner &amp;lt;daniel.wagner&amp;lt; at &amp;gt;bmw-carit.de&amp;gt;

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.
---
 plugins/session_policy_local.c | 204 ++++++++++++++++++++++++++++++++++++-----
 1 file changed, 179 insertions(+), 25 deletions(-)

diff --git a/plugins/session_policy_local.c b/plugins/session_policy_local.c
index f820bd4..d9f9aef 100644
--- a/plugins/session_policy_local.c
+++ b/plugins/session_policy_local.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -27,6 +27,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;string.h&amp;gt;
 #include &amp;lt;sys/inotify.h&amp;gt;
 #include &amp;lt;sys/stat.h&amp;gt;
+#include &amp;lt;sys/types.h&amp;gt;
+#include &amp;lt;pwd.h&amp;gt;
+#include &amp;lt;grp.h&amp;gt;
 
 #include &amp;lt;glib.h&amp;gt;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -49,8 +52,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static DBusConnection *connection;
 static GHashTable *file_hash;    /* (filename, policy_file) */
 static GHashTable &lt;/pre&gt;</description>
    <dc:creator>Daniel Wagner</dc:creator>
    <dc:date>2013-05-17T11:08:31</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14223">
    <title>[PATCH v4 07/12] session_policy_local: Rework policy file handling</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14223</link>
    <description>&lt;pre&gt;From: Daniel Wagner &amp;lt;daniel.wagner&amp;lt; at &amp;gt;bmw-carit.de&amp;gt;

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)

And now some comments on the implementation. We have two main hash
tables, file_hash and session_hash which own 'the file' respectively
the session config. Additionally we have a hash table which connects a
policy with a session (selinux_hash).
---
 plugins/session_policy_local.c | 400 ++++++++++++++++++++++++++---------------
 1 fil&lt;/pre&gt;</description>
    <dc:creator>Daniel Wagner</dc:creator>
    <dc:date>2013-05-17T11:08:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14222">
    <title>[PATCH v4 12/12] session-test: Add tests for session_policy_local</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14222</link>
    <description>&lt;pre&gt;From: Daniel Wagner &amp;lt;daniel.wagner&amp;lt; at &amp;gt;bmw-carit.de&amp;gt;

Use the UID as identification.
---
 tools/session-test.c | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 151 insertions(+)

diff --git a/tools/session-test.c b/tools/session-test.c
index c296b95..ac91894 100644
--- a/tools/session-test.c
+++ b/tools/session-test.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -24,11 +24,16 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #endif
 
 #include &amp;lt;stdio.h&amp;gt;
+#include &amp;lt;unistd.h&amp;gt;
+#include &amp;lt;pwd.h&amp;gt;
+#include &amp;lt;sys/types.h&amp;gt;
 
 #include &amp;lt;gdbus.h&amp;gt;
 
 #include "session-test.h"
 
+#define POLICYDIR STORAGEDIR "/session_policy_local"
+
 enum test_session_state {
 TEST_SESSION_STATE_0 = 0,
 TEST_SESSION_STATE_1 = 1,
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -495,6 +500,149 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static gboolean test_session_connect_free_ride(gpointer data)
 return FALSE;
 }
 
+static void policy_save(GKeyFile *keyfile, char *pathname)
+{
+gchar *data = NULL;
+gsize length = 0;
+GError *error = NULL;
+
+data = g_key_file_to_data(keyfile, &amp;amp;length, NULL);
+
+if(!g_file_set_contents(pathname, data, length, &amp;amp;error)) {
+DBG("Failed to store &lt;/pre&gt;</description>
    <dc:creator>Daniel Wagner</dc:creator>
    <dc:date>2013-05-17T11:08:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14221">
    <title>[PATCH v4 08/12] session_policy_local: Remove struct create_data</title>
    <link>http://permalink.gmane.org/gmane.comp.handhelds.moblin.connman/14221</link>
    <description>&lt;pre&gt;From: Daniel Wagner &amp;lt;daniel.wagner&amp;lt; at &amp;gt;bmw-carit.de&amp;gt;

Instead we use struct policy_data from the beginning.
---
 plugins/session_policy_local.c | 43 ++++++++++++++----------------------------
 1 file changed, 14 insertions(+), 29 deletions(-)

diff --git a/plugins/session_policy_local.c b/plugins/session_policy_local.c
index 4b17a4c..f820bd4 100644
--- a/plugins/session_policy_local.c
+++ b/plugins/session_policy_local.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -52,10 +52,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static GHashTable *session_hash; /* (connman_session, policy_config) */
 /* Global lookup table for mapping sessions to policies */
 static GHashTable *selinux_hash; /* (lsm context, policy_group) */
 
-struct create_data {
-struct connman_session *session;
-};
-
 /*
  * A instance of struct policy_file is created per file in
  * POLICYDIR.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -156,31 +152,19 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static char *parse_selinux_type(const char *context)
 return ident;
 }
 
-static struct policy_config *create_policy(void)
-{
-struct policy_config *policy;
-
-policy = g_new0(struct policy_config, 1);
-
-DBG("pol&lt;/pre&gt;</description>
    <dc:creator>Daniel Wagner</dc:creator>
    <dc:date>2013-05-17T11:08:30</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.handhelds.moblin.connman">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.handhelds.moblin.connman</link>
  </textinput>
</rdf:RDF>
