Send connman mailing list submissions to
        [email protected]

To subscribe or unsubscribe via email, send a message with subject or
body 'help' to
        [email protected]

You can reach the person managing the list at
        [email protected]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of connman digest..."

Today's Topics:

   1. [PATCH] timeserver: Split new service and configuration update
      (Daniel Wagner)
   2. Re: [PATCH] Fix time synchronization after updating timeservers
      (Daniel Wagner)
   3. Re: [PATCH] Force BSS expiration (Daniel Wagner)
   4. [PATCH] services: Escape passphrase string (Daniel Wagner)
   5. Re: connmanctl fails to connect to WiFi network having passwords ending 
with a backslash character
      (Daniel Wagner)
   6. Re: connmanctl fails to connect to WiFi network having passwords ending 
with a backslash character
      (Boris *)
   7. [PATCH] clock: Add TimeSynced signal emitted when the system time has 
been synced
      (VAUTRIN Emmanuel (Canal Plus Prestataire))


----------------------------------------------------------------------

Date: Wed, 23 Dec 2020 13:18:55 +0100
From: Daniel Wagner <[email protected]>
Subject: [PATCH] timeserver: Split new service and configuration
        update
To: [email protected]
Cc: VAUTRIN Emmanuel <[email protected]>, Daniel Wagner
        <[email protected]>
Message-ID: <[email protected]>

Allow to update the existing used service with a new time server
configuration. Instead overloading the __connman_timeservice_sync()
function introduce a new function for updating the currently used
service for time synchronization. By this we document clearly in the
code what is supposed to be updated.
---
 src/connman.h    |  3 ++-
 src/service.c    |  4 +---
 src/timeserver.c | 53 +++++++++++++++++++++++++++---------------------
 3 files changed, 33 insertions(+), 27 deletions(-)

diff --git a/src/connman.h b/src/connman.h
index 12e9407f261e..17452a76567f 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -451,7 +451,8 @@ char **__connman_timeserver_system_get();
 GSList *__connman_timeserver_add_list(GSList *server_list,
                const char *timeserver);
 GSList *__connman_timeserver_get_all(struct connman_service *service);
-int __connman_timeserver_sync(struct connman_service *service);
+void __connman_timeserver_sync(struct connman_service *service);
+void __connman_timeserver_conf_update(struct connman_service *service);
 
 enum __connman_dhcpv6_status {
        CONNMAN_DHCPV6_STATUS_FAIL     = 0,
diff --git a/src/service.c b/src/service.c
index f8ea8ebbe9a4..2c01447e4673 100644
--- a/src/service.c
+++ b/src/service.c
@@ -3746,9 +3746,7 @@ static DBusMessage *set_property(DBusConnection *conn,
 
                service_save(service);
                timeservers_configuration_changed(service);
-
-               if (service == connman_service_get_default())
-                       __connman_timeserver_sync(service);
+               __connman_timeserver_conf_update(service);
 
        } else if (g_str_equal(name, "Domains.Configuration")) {
                DBusMessageIter entry;
diff --git a/src/timeserver.c b/src/timeserver.c
index 7e4f88ae849a..9e221a26bfc8 100644
--- a/src/timeserver.c
+++ b/src/timeserver.c
@@ -272,6 +272,7 @@ GSList *__connman_timeserver_get_all(struct connman_service 
*service)
 
 static gboolean ts_recheck(gpointer user_data)
 {
+       struct connman_service *service;
        GSList *ts;
 
        ts = __connman_timeserver_get_all(connman_service_get_default());
@@ -287,7 +288,8 @@ static gboolean ts_recheck(gpointer user_data)
 
                g_slist_free_full(ts, g_free);
 
-               __connman_timeserver_sync(NULL);
+               service = connman_service_get_default();
+               __connman_timeserver_sync(service);
 
                return FALSE;
        }
@@ -327,29 +329,14 @@ static void ts_recheck_enable(void)
                        NULL);
 }
 
-/*
- * This function must be called every time the default service changes, the
- * service timeserver(s) or gateway changes or the global timeserver(s) 
changes.
- */
-int __connman_timeserver_sync(struct connman_service *default_service)
+static void ts_reset(struct connman_service *service)
 {
-       struct connman_service *service;
        char **nameservers;
        int i;
 
-       if (default_service)
-               service = default_service;
-       else
-               service = connman_service_get_default();
-
-       if (!service)
-               return -EINVAL;
-
-       if (service == ts_service)
-               return -EALREADY;
-
        if (!resolv)
-               return 0;
+               return;
+
        /*
         * Before we start creating the new timeserver list we must stop
         * any ongoing ntp query and server resolution.
@@ -380,17 +367,32 @@ int __connman_timeserver_sync(struct connman_service 
*default_service)
 
        if (!timeservers_list) {
                DBG("No timeservers set.");
-               return 0;
+               return;
        }
 
        ts_recheck_enable();
 
        ts_service = service;
        timeserver_sync_start();
+}
 
-       return 0;
+void __connman_timeserver_sync(struct connman_service *service)
+{
+       if (!service || service == ts_service)
+               return;
+
+       ts_reset(service);
 }
 
+void __connman_timeserver_conf_update(struct connman_service *service)
+{
+       if (!service || service != ts_service)
+               return;
+
+       ts_reset(service);
+}
+
+
 static int timeserver_start(struct connman_service *service)
 {
        char **nameservers;
@@ -430,7 +432,9 @@ static int timeserver_start(struct connman_service *service)
                g_strfreev(nameservers);
        }
 
-       return __connman_timeserver_sync(service);
+       __connman_timeserver_sync(service);
+
+       return 0;
 }
 
 static void timeserver_stop(void)
@@ -457,9 +461,12 @@ static void timeserver_stop(void)
 
 int __connman_timeserver_system_set(char **servers)
 {
+       struct connman_service *service;
+
        save_timeservers(servers);
 
-       __connman_timeserver_sync(NULL);
+       service = connman_service_get_default();
+       __connman_timeserver_conf_update(service);
 
        return 0;
 }
-- 
2.29.2

------------------------------

Date: Wed, 23 Dec 2020 13:20:46 +0100
From: Daniel Wagner <[email protected]>
Subject: Re: [PATCH] Fix time synchronization after updating
        timeservers
To: "VAUTRIN Emmanuel (Canal Plus Prestataire)"
        <[email protected]>
Cc: "[email protected]" <[email protected]>
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii

On Tue, Dec 22, 2020 at 09:55:26AM +0000, VAUTRIN Emmanuel (Canal Plus 
Prestataire) wrote:
> When starting my board with TimeUpdates in auto and Timeservers to an
> empty array, the Time is set to /etc/timestamp default value.  After a
> while (I am online, with internet working, ntp reachable...), when I
> decide to get the time from the network, by setting Timeservers to
> real NTP configurations, the Time is not updated to the current date
> and time as expected, but continue incrementing from its default value
> (/etc/timestamp).

I see, so the problem is that the service stays the same but the time
server configuration changes, which will not be considered. Let's fix
this properly by introducing a function just for updating the current
configuration. I'll send out a patch for this. Can you test it please?

------------------------------

Date: Wed, 23 Dec 2020 14:02:05 +0100
From: Daniel Wagner <[email protected]>
Subject: Re: [PATCH] Force BSS expiration
To: "VAUTRIN Emmanuel (Canal Plus Prestataire)"
        <[email protected]>
Cc: "[email protected]" <[email protected]>
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii

Hi Emmanuel,

On Tue, Dec 22, 2020 at 03:21:21PM +0000, VAUTRIN Emmanuel (Canal Plus 
Prestataire) wrote:
> By our side, with wpa_supplicant, we are facing the minimal network
> list (only ethernet and connected wifi) during 2 minutes every 3
> minutes.

Thanks for adding the commit message. The explanation makes totally
sense. I am surprised no one was providing a fix long before. So thank
you!

> Please find my attached patch, taking into account your remarks.

I've reformatted it slightly, so it matches a bit more the code style in
the file. Also I changed the connman_error() into a connman_warn() as
this is not a real error IMO.

Patch applied.

Thanks,
Daniel

------------------------------

Date: Wed, 23 Dec 2020 16:04:42 +0100
From: Daniel Wagner <[email protected]>
Subject: [PATCH] services: Escape passphrase string
To: [email protected]
Cc: Daniel Wagner <[email protected]>
Message-ID: <[email protected]>

The WiFi passphrase might use chars which need escaping because
g_key_file_get_string() is trying to decode the strings it reads.
---
 src/service.c    | 11 ++++++++---
 src/technology.c | 13 +++++++++----
 2 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/src/service.c b/src/service.c
index f8ea8ebbe9a4..a83f98757cf1 100644
--- a/src/service.c
+++ b/src/service.c
@@ -572,8 +572,10 @@ static int service_load(struct connman_service *service)
        str = g_key_file_get_string(keyfile,
                                service->identifier, "Passphrase", NULL);
        if (str) {
+               char *dec = g_strcompress(str);
+               g_free(str);
                g_free(service->passphrase);
-               service->passphrase = str;
+               service->passphrase = dec;
        }
 
        if (service->ipconfig_ipv4)
@@ -736,9 +738,12 @@ static int service_save(struct connman_service *service)
                g_free(str);
        }
 
-       if (service->passphrase && strlen(service->passphrase) > 0)
+       if (service->passphrase && strlen(service->passphrase) > 0) {
+               char *enc = g_strescape(service->passphrase, NULL);
                g_key_file_set_string(keyfile, service->identifier,
-                               "Passphrase", service->passphrase);
+                               "Passphrase", enc);
+               g_free(enc);
+       }
 
        if (service->ipconfig_ipv4)
                __connman_ipconfig_save(service->ipconfig_ipv4, keyfile,
diff --git a/src/technology.c b/src/technology.c
index 4e053fc9caa9..672d6ea81990 100644
--- a/src/technology.c
+++ b/src/technology.c
@@ -185,10 +185,12 @@ static void technology_save(struct connman_technology 
*technology)
                                        "Tethering.Identifier",
                                        technology->tethering_ident);
 
-       if (technology->tethering_passphrase)
+       if (technology->tethering_passphrase) {
+               char *enc = g_strescape(technology->tethering_passphrase, NULL);
                g_key_file_set_string(keyfile, identifier,
-                                       "Tethering.Passphrase",
-                                       technology->tethering_passphrase);
+                                       "Tethering.Passphrase", enc);
+               g_free(enc);
+       }
 
 done:
        g_free(identifier);
@@ -390,6 +392,7 @@ static void technology_load(struct connman_technology 
*technology)
        gchar *identifier;
        GError *error = NULL;
        bool enable, need_saving = false;
+       char *enc;
 
        DBG("technology %p", technology);
 
@@ -436,8 +439,10 @@ static void technology_load(struct connman_technology 
*technology)
        technology->tethering_ident = g_key_file_get_string(keyfile,
                                identifier, "Tethering.Identifier", NULL);
 
-       technology->tethering_passphrase = g_key_file_get_string(keyfile,
+       enc = g_key_file_get_string(keyfile,
                                identifier, "Tethering.Passphrase", NULL);
+       if (enc)
+               technology->tethering_passphrase = g_strcompress(enc);
 done:
        g_free(identifier);
 
-- 
2.29.2

------------------------------

Date: Wed, 23 Dec 2020 16:12:16 +0100
From: Daniel Wagner <[email protected]>
Subject: Re: connmanctl fails to connect to WiFi network having
        passwords ending with a backslash character
To: * * <[email protected]>
Cc: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii

On Tue, Dec 22, 2020 at 11:19:05AM +0100, Daniel Wagner wrote:
> > # cat settings
> > Passphrase="kjHTJ235nnM!0
> 
> We use GLib's key file API to read and write the settings file. The
> problem might be we that we don't escape the special chars when writing
> the passhphrase and later we retrieve it using a plain
> g_key_file_get_string(). The documenation says
> 
>    '... this function handles escape sequences like \s.'
> 
> So clearly we need to encode the string when saving it to settings.

FYI, just sent out a patch which escapes the passphrase. Please give it
go and let me know if it works for you.

------------------------------

Date: Wed, 23 Dec 2020 15:16:06 +0000
From: "Boris *" <[email protected]>
Subject: Re: connmanctl fails to connect to WiFi network having
        passwords ending with a backslash character
To: Daniel Wagner <[email protected]>
Cc: [email protected]
Message-ID:
        <CAP9vw1=CxcRWDd0hVVR53S=USq5PqhdVD82=c9tfpx0qa-a...@mail.gmail.com>
Content-Type: multipart/alternative;
        boundary="000000000000b5db5705b7232dff"

--000000000000b5db5705b7232dff
Content-Type: text/plain; charset="UTF-8"

Hi Daniel,

thanks a lot for the swift action on that, it is far beyond my expectations
as I did not even know about the community just a few days ago.
I'll test it and report back ASAP.

Cheers!


Boris
--


On Wed, 23 Dec 2020 at 15:12, Daniel Wagner <[email protected]> wrote:

> On Tue, Dec 22, 2020 at 11:19:05AM +0100, Daniel Wagner wrote:
> > > # cat settings
> > > Passphrase="kjHTJ235nnM!0
> >
> > We use GLib's key file API to read and write the settings file. The
> > problem might be we that we don't escape the special chars when writing
> > the passhphrase and later we retrieve it using a plain
> > g_key_file_get_string(). The documenation says
> >
> >    '... this function handles escape sequences like \s.'
> >
> > So clearly we need to encode the string when saving it to settings.
>
> FYI, just sent out a patch which escapes the passphrase. Please give it
> go and let me know if it works for you.
>

--000000000000b5db5705b7232dff
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi Daniel,<div><br></div><div>thanks a lot for the swift a=
ction on that, it is far beyond my expectations as I did not even know abou=
t the community just a few days ago.</div><div>I&#39;ll test it and report =
back ASAP.</div><div><br></div><div>Cheers!</div><div><br clear=3D"all"><di=
v><div dir=3D"ltr" class=3D"gmail_signature" data-smartmail=3D"gmail_signat=
ure"><br>Boris<br>--<br></div></div><br></div></div><br><div class=3D"gmail=
_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, 23 Dec 2020 at 15:12,=
 Daniel Wagner &lt;<a href=3D"mailto:[email protected]";>[email protected]</a>&gt;=
 wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Tue, =
Dec 22, 2020 at 11:19:05AM +0100, Daniel Wagner wrote:<br>
&gt; &gt; # cat settings<br>
&gt; &gt; Passphrase=3D&quot;kjHTJ235nnM!0<br>
&gt; <br>
&gt; We use GLib&#39;s key file API to read and write the settings file. Th=
e<br>
&gt; problem might be we that we don&#39;t escape the special chars when wr=
iting<br>
&gt; the passhphrase and later we retrieve it using a plain<br>
&gt; g_key_file_get_string(). The documenation says<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 &#39;... this function handles escape sequences like \s.&=
#39;<br>
&gt; <br>
&gt; So clearly we need to encode the string when saving it to settings.<br=
>
<br>
FYI, just sent out a patch which escapes the passphrase. Please give it<br>
go and let me know if it works for you.<br>
</blockquote></div>

--000000000000b5db5705b7232dff--

------------------------------

Date: Wed, 23 Dec 2020 15:19:30 +0000
From: "VAUTRIN Emmanuel (Canal Plus Prestataire)"
        <[email protected]>
Subject: [PATCH] clock: Add TimeSynced signal emitted when the system
        time has been synced
To: "[email protected]" <[email protected]>
Message-ID:  <[email protected]
        prd02.prod.outlook.com>
Content-Type: multipart/mixed;  boundary="_004_PR1PR02MB47943DC59AF073
        0A8A5975F093DE0PR1PR02MB4794eurp_"

--_004_PR1PR02MB47943DC59AF0730A8A5975F093DE0PR1PR02MB4794eurp_
Content-Type: multipart/alternative;
        boundary="_000_PR1PR02MB47943DC59AF0730A8A5975F093DE0PR1PR02MB4794eurp_"

--_000_PR1PR02MB47943DC59AF0730A8A5975F093DE0PR1PR02MB4794eurp_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hello,

As our system depends on https requests, and for boot performance purposes,=
 we need to be informed when a time synchronization (via the ntp) is perfor=
med.

In this aim, please find the attached patch, adding the TimeSynced signal e=
mitted when the system time has been synced.


Best Regards,

Emmanuel

--_000_PR1PR02MB47943DC59AF0730A8A5975F093DE0PR1PR02MB4794eurp_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Hello,</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
As our system depends on https requests, and for boot performance purposes,=
 we need to be informed when a time synchronization (via the ntp) is perfor=
med.</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
In this aim, please find the attached patch, adding the TimeSynced signal e=
mitted when the system time has been synced.</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Best Regards,</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Emmanuel<br>
</div>
</body>
</html>

--_000_PR1PR02MB47943DC59AF0730A8A5975F093DE0PR1PR02MB4794eurp_--

--_004_PR1PR02MB47943DC59AF0730A8A5975F093DE0PR1PR02MB4794eurp_
Content-Type: text/x-patch; name="0001-1-clock-Add-TimeSynced-signal.patch"
Content-Description: 0001-1-clock-Add-TimeSynced-signal.patch
Content-Disposition: attachment;
        filename="0001-1-clock-Add-TimeSynced-signal.patch"; size=3298;
        creation-date="Wed, 23 Dec 2020 15:05:33 GMT";
        modification-date="Wed, 23 Dec 2020 15:06:24 GMT"
Content-Transfer-Encoding: base64

RnJvbSBjZjMxMWU5OThjODViMTg3MDM4ODZiNDliYzk4YzA2ODQwNjEyYzIyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBFbW1hbnVlbCBWQVVUUklOIDxFbW1hbnVlbC5WQVVUUklOQGNw
ZXh0ZXJuZS5vcmc+CkRhdGU6IFdlZCwgMjMgRGVjIDIwMjAgMTI6MDY6MDQgKzAxMDAKU3ViamVj
dDogW1BBVENIXSBjbG9jazogQWRkIFRpbWVTeW5jZWQgc2lnbmFsIGVtaXR0ZWQgd2hlbiB0aGUg
c3lzdGVtIHRpbWUgaGFzCiBiZWVuIHN5bmNlZC4KCi0tLQogZG9jL2Nsb2NrLWFwaS50eHQgfCAg
NCArKysrCiBpbmNsdWRlL2RidXMuaCAgICB8ICAyICsrCiBzcmMvY2xvY2suYyAgICAgICB8ICAy
ICsrCiBzcmMvZGJ1cy5jICAgICAgICB8IDMwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr
Kwogc3JjL3RpbWVzZXJ2ZXIuYyAgfCAgMyArKysKIDUgZmlsZXMgY2hhbmdlZCwgNDEgaW5zZXJ0
aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RvYy9jbG9jay1hcGkudHh0IGIvZG9jL2Nsb2NrLWFwaS50
eHQKaW5kZXggNjgxOGY1YTguLjJlMzY4ZDBhIDEwMDY0NAotLS0gYS9kb2MvY2xvY2stYXBpLnR4
dAorKysgYi9kb2MvY2xvY2stYXBpLnR4dApAQCAtMjcsNiArMjcsMTAgQEAgU2lnbmFscwkJUHJv
cGVydHlDaGFuZ2VkKHN0cmluZyBuYW1lLCB2YXJpYW50IHZhbHVlKSAgW2V4cGVyaW1lbnRhbF0K
IAkJCVRoaXMgc2lnbmFsIGluZGljYXRlcyBhIGNoYW5nZWQgdmFsdWUgb2YgdGhlIGdpdmVuCiAJ
CQlwcm9wZXJ0eS4KIAorCQkJVGltZVN5bmNlZCh1aW50NjQgVGltZSkgIFtleHBlcmltZW50YWxd
CisKKwkJCVRoaXMgc2lnbmFsIGluZGljYXRlcyB0aGF0IHRoZSBjdXJyZW50IHN5c3RlbSB0aW1l
CisJCQloYXMgYmVlbiBzeW5jZWQuCiAKIFByb3BlcnRpZXMJdWludDY0IFRpbWUgW3JlYWRvbmx5
IG9yIHJlYWR3cml0ZV0gIFtleHBlcmltZW50YWxdCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZGJ1
cy5oIGIvaW5jbHVkZS9kYnVzLmgKaW5kZXggYmNhYjQxODkuLjMyMDhhZGM1IDEwMDY0NAotLS0g
YS9pbmNsdWRlL2RidXMuaAorKysgYi9pbmNsdWRlL2RidXMuaApAQCAtODUsNiArODUsOCBAQCBk
YnVzX2Jvb2xfdCBjb25ubWFuX2RidXNfc2V0dGluZ19jaGFuZ2VkX2FycmF5KGNvbnN0IGNoYXIg
Km93bmVyLAogCQkJCWNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKmtleSwgaW50IHR5cGUs
CiAJCQkJY29ubm1hbl9kYnVzX2FwcGVuZF9jYl90IGZ1bmN0aW9uLAogCQkJCXZvaWQgKnVzZXJf
ZGF0YSk7CitkYnVzX2Jvb2xfdCBjb25ubWFuX2RidXNfdGltZV9zeW5jZWQoY29uc3QgY2hhciAq
cGF0aCwKKwkJCQljb25zdCBjaGFyICppbnRlcmZhY2UpOwogCiBzdGF0aWMgaW5saW5lIHZvaWQg
Y29ubm1hbl9kYnVzX2RpY3Rfb3BlbihEQnVzTWVzc2FnZUl0ZXIgKml0ZXIsCiAJCQkJCQkJREJ1
c01lc3NhZ2VJdGVyICpkaWN0KQpkaWZmIC0tZ2l0IGEvc3JjL2Nsb2NrLmMgYi9zcmMvY2xvY2su
YwppbmRleCAwZmRlMmMzNC4uMzE1ZTkwOGUgMTAwNjQ0Ci0tLSBhL3NyYy9jbG9jay5jCisrKyBi
L3NyYy9jbG9jay5jCkBAIC0zODEsNiArMzgxLDggQEAgc3RhdGljIGNvbnN0IEdEQnVzTWV0aG9k
VGFibGUgY2xvY2tfbWV0aG9kc1tdID0gewogc3RhdGljIGNvbnN0IEdEQnVzU2lnbmFsVGFibGUg
Y2xvY2tfc2lnbmFsc1tdID0gewogCXsgR0RCVVNfU0lHTkFMKCJQcm9wZXJ0eUNoYW5nZWQiLAog
CQkJR0RCVVNfQVJHUyh7ICJuYW1lIiwgInMiIH0sIHsgInZhbHVlIiwgInYiIH0pKSB9LAorCXsg
R0RCVVNfU0lHTkFMKCJUaW1lU3luY2VkIiwKKwkJCUdEQlVTX0FSR1MoeyAibmFtZSIsICJzIiB9
LCB7ICJ2YWx1ZSIsICJ2IiB9KSkgfSwKIAl7IH0sCiB9OwogCmRpZmYgLS1naXQgYS9zcmMvZGJ1
cy5jIGIvc3JjL2RidXMuYwppbmRleCBkODBhNDZjZS4uNzNkMWJhZDYgMTAwNjQ0Ci0tLSBhL3Ny
Yy9kYnVzLmMKKysrIGIvc3JjL2RidXMuYwpAQCAtMjMsNiArMjMsOCBAQAogI2luY2x1ZGUgPGNv
bmZpZy5oPgogI2VuZGlmCiAKKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorCiAjaW5jbHVkZSA8c3Ry
aW5nLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxnZGJ1cy5oPgpAQCAtMzgyLDYg
KzM4NCwzNCBAQCBkYnVzX2Jvb2xfdCBjb25ubWFuX2RidXNfc2V0dGluZ19jaGFuZ2VkX2FycmF5
KGNvbnN0IGNoYXIgKm93bmVyLAogCXJldHVybiBUUlVFOwogfQogCitkYnVzX2Jvb2xfdCBjb25u
bWFuX2RidXNfdGltZV9zeW5jZWQoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqaW50ZXJm
YWNlKQoreworCURCdXNNZXNzYWdlICpzaWduYWw7CisJREJ1c01lc3NhZ2VJdGVyIGl0ZXI7CisJ
c3RydWN0IHRpbWV2YWwgdHY7CisJZGJ1c191aW50NjRfdCB2YWwgPSAwOworCisJaWYgKCFwYXRo
KQorCQlyZXR1cm4gRkFMU0U7CisKKwlzaWduYWwgPSBkYnVzX21lc3NhZ2VfbmV3X3NpZ25hbChw
YXRoLCBpbnRlcmZhY2UsICJUaW1lU3luY2VkIik7CisJaWYgKCFzaWduYWwpCisJCXJldHVybiBG
QUxTRTsKKworCWRidXNfbWVzc2FnZV9pdGVyX2luaXRfYXBwZW5kKHNpZ25hbCwgJml0ZXIpOwor
CisJaWYgKGdldHRpbWVvZmRheSgmdHYsIE5VTEwpID09IDApIHsKKwkJdmFsID0gdHYudHZfc2Vj
OworCX0KKworCWNvbm5tYW5fZGJ1c19wcm9wZXJ0eV9hcHBlbmRfYmFzaWMoJml0ZXIsICJUaW1l
IiwKKwkJCQkJCURCVVNfVFlQRV9VSU5UNjQsICZ2YWwpOworCisJZ19kYnVzX3NlbmRfbWVzc2Fn
ZShjb25uZWN0aW9uLCBzaWduYWwpOworCisJcmV0dXJuIFRSVUU7Cit9CisKIGRidXNfYm9vbF90
IF9fY29ubm1hbl9kYnVzX2FwcGVuZF9vYmpwYXRoX2RpY3RfYXJyYXkoREJ1c01lc3NhZ2UgKm1z
ZywKIAkJY29ubm1hbl9kYnVzX2FwcGVuZF9jYl90IGZ1bmN0aW9uLCB2b2lkICp1c2VyX2RhdGEp
CiB7CmRpZmYgLS1naXQgYS9zcmMvdGltZXNlcnZlci5jIGIvc3JjL3RpbWVzZXJ2ZXIuYwppbmRl
eCBkZWNjYTE1My4uZWJkMWZhYjMgMTAwNjQ0Ci0tLSBhL3NyYy90aW1lc2VydmVyLmMKKysrIGIv
c3JjL3RpbWVzZXJ2ZXIuYwpAQCAtNTcsNiArNTcsOSBAQCBzdGF0aWMgdm9pZCBudHBfY2FsbGJh
Y2soYm9vbCBzdWNjZXNzLCB2b2lkICp1c2VyX2RhdGEpCiAKIAlpZiAoIXN1Y2Nlc3MpCiAJCXN5
bmNfbmV4dCgpOworCWVsc2UKKwkJY29ubm1hbl9kYnVzX3RpbWVfc3luY2VkKENPTk5NQU5fTUFO
QUdFUl9QQVRILAorCQkJCQlDT05OTUFOX0NMT0NLX0lOVEVSRkFDRSk7CiB9CiAKIHN0YXRpYyB2
b2lkIHNhdmVfdGltZXNlcnZlcnMoY2hhciAqKnNlcnZlcnMpCi0tIAoyLjI1LjEKCg==

--_004_PR1PR02MB47943DC59AF0730A8A5975F093DE0PR1PR02MB4794eurp_--

------------------------------

Subject: Digest Footer

_______________________________________________
connman mailing list -- [email protected]
To unsubscribe send an email to [email protected]


------------------------------

End of connman Digest, Vol 62, Issue 28
***************************************

Reply via email to