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 1/3] dhcp: Cleanup of VendorClassID config option
(VAUTRIN Emmanuel (Canal Plus Prestataire))
2. [PATCH 2/3] wispr: Add online check url config options
(VAUTRIN Emmanuel (Canal Plus Prestataire))
3. [PATCH 3/3] wispr: Support of common redirection status codes
(VAUTRIN Emmanuel (Canal Plus Prestataire))
----------------------------------------------------------------------
Date: Wed, 28 Apr 2021 07:38:33 +0000
From: "VAUTRIN Emmanuel (Canal Plus Prestataire)"
<[email protected]>
Subject: [PATCH 1/3] dhcp: Cleanup of VendorClassID config option
To: "[email protected]" <[email protected]>
Message-ID: <[email protected]
prd02.prod.outlook.com>
Content-Type: text/plain; charset="iso-8859-1"
---
include/setting.h | 1 +
src/dhcp.c | 2 +-
src/main.c | 18 ++++++++++++------
3 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/include/setting.h b/include/setting.h
index 8d2c37b7964d..920e6754169b 100644
--- a/include/setting.h
+++ b/include/setting.h
@@ -30,6 +30,7 @@ extern "C" {
bool connman_setting_get_bool(const char *key);
unsigned int connman_setting_get_uint(const char *key);
+char *connman_setting_get_string(const char *key);
char **connman_setting_get_string_list(const char *key);
unsigned int *connman_setting_get_uint_list(const char *key);
diff --git a/src/dhcp.c b/src/dhcp.c
index 42e9f417d960..2d96c439207e 100644
--- a/src/dhcp.c
+++ b/src/dhcp.c
@@ -616,7 +616,7 @@ static int dhcp_initialize(struct connman_dhcp *dhcp)
g_dhcp_client_set_request(dhcp_client, G_DHCP_ROUTER);
g_dhcp_client_set_request(dhcp_client, G_DHCP_SUBNET);
- vendor_class_id = connman_option_get_string("VendorClassID");
+ vendor_class_id = connman_setting_get_string("VendorClassID");
if (vendor_class_id)
g_dhcp_client_set_send(dhcp_client, G_DHCP_VENDOR_CLASS_ID,
vendor_class_id);
diff --git a/src/main.c b/src/main.c
index 8bd44ba18027..73ecde418793 100644
--- a/src/main.c
+++ b/src/main.c
@@ -301,7 +301,7 @@ static void parse_config(GKeyFile *config)
char **interfaces;
char **str_list;
char **tethering;
- char *vendor_class_id;
+ char *string;
gsize len;
int integer;
@@ -461,10 +461,10 @@ static void parse_config(GKeyFile *config)
g_clear_error(&error);
- vendor_class_id = __connman_config_get_string(config, "General",
+ string = __connman_config_get_string(config, "General",
CONF_VENDOR_CLASS_ID, &error);
if (!error)
- connman_settings.vendor_class_id = vendor_class_id;
+ connman_settings.vendor_class_id = string;
g_clear_error(&error);
@@ -705,9 +705,6 @@ static GOptionEntry options[] = {
const char *connman_option_get_string(const char *key)
{
- if (g_str_equal(key, CONF_VENDOR_CLASS_ID))
- return connman_settings.vendor_class_id;
-
if (g_strcmp0(key, "wifi") == 0) {
if (!option_wifi)
return "nl80211,wext";
@@ -767,6 +764,14 @@ unsigned int connman_setting_get_uint(const char *key)
return 0;
}
+char *connman_setting_get_string(const char *key)
+{
+ if (g_str_equal(key, CONF_VENDOR_CLASS_ID))
+ return connman_settings.vendor_class_id;
+
+ return NULL;
+}
+
char **connman_setting_get_string_list(const char *key)
{
if (g_str_equal(key, CONF_PREF_TIMESERVERS))
@@ -988,6 +993,7 @@ int main(int argc, char *argv[])
g_strfreev(connman_settings.fallback_nameservers);
g_strfreev(connman_settings.blacklisted_interfaces);
g_strfreev(connman_settings.tethering_technologies);
+ g_free(connman_settings.vendor_class_id);
g_free(option_debug);
g_free(option_wifi);
--
2.25.1
------------------------------
Date: Wed, 28 Apr 2021 07:41:29 +0000
From: "VAUTRIN Emmanuel (Canal Plus Prestataire)"
<[email protected]>
Subject: [PATCH 2/3] wispr: Add online check url config options
To: "[email protected]" <[email protected]>
Message-ID: <[email protected]
prd02.prod.outlook.com>
Content-Type: text/plain; charset="iso-8859-1"
Global config options, which allow to set the urls (IPv4 and IPv6
respectively) used during the online status check.
WARNING: The server shall respond with 200 status code and
X-ConnMan-Status: online header.
Default values are http://ipv4.connman.net/online/status.html and
http://ipv6.connman.net/online/status.html respectively.
---
doc/connman.conf.5.in | 7 +++++++
src/main.c | 33 +++++++++++++++++++++++++++++++++
src/main.conf | 8 ++++++++
src/wispr.c | 14 +++++++++-----
4 files changed, 57 insertions(+), 5 deletions(-)
diff --git a/doc/connman.conf.5.in b/doc/connman.conf.5.in
index 2e06b3ef1f3c..499e019f15a6 100644
--- a/doc/connman.conf.5.in
+++ b/doc/connman.conf.5.in
@@ -167,6 +167,13 @@ transitioned to ONLINE state.
If this setting is false, the default service will remain in READY state.
Default value is true.
.TP
+.BI OnlineCheckIpv4Url= url, OnlineCheckIpv6Url= url
+Urls (IPv4 and IPv6 respectively) used during the online status check.
+WARNING: The server shall respond with 200 status code and
+X-ConnMan-Status: online header.
+Default values are http://ipv4.connman.net/online/status.html and
+http://ipv6.connman.net/online/status.html respectively.
+.TP
.BI OnlineCheckInitialInterval= secs, OnlineCheckMaxInterval= secs
Range of intervals between two online check requests.
When an online check request fails, another one is triggered after a
diff --git a/src/main.c b/src/main.c
index 73ecde418793..7a210902efda 100644
--- a/src/main.c
+++ b/src/main.c
@@ -44,6 +44,9 @@
#define DEFAULT_INPUT_REQUEST_TIMEOUT (120 * 1000)
#define DEFAULT_BROWSER_LAUNCH_TIMEOUT (300 * 1000)
+#define DEFAULT_ONLINE_CHECK_IPV4_URL
"http://ipv4.connman.net/online/status.html"
+#define DEFAULT_ONLINE_CHECK_IPV6_URL
"http://ipv6.connman.net/online/status.html"
+
/*
* We set the integer to 1 sec so that we have a chance to get
* necessary IPv6 router advertisement messages that might have
@@ -97,6 +100,8 @@ static struct {
char *vendor_class_id;
bool enable_online_check;
bool enable_online_to_ready_transition;
+ char *online_check_ipv4_url;
+ char *online_check_ipv6_url;
unsigned int online_check_initial_interval;
unsigned int online_check_max_interval;
bool auto_connect_roaming_services;
@@ -122,6 +127,8 @@ static struct {
.vendor_class_id = NULL,
.enable_online_check = true,
.enable_online_to_ready_transition = false,
+ .online_check_ipv4_url = DEFAULT_ONLINE_CHECK_IPV4_URL,
+ .online_check_ipv6_url = DEFAULT_ONLINE_CHECK_IPV6_URL,
.online_check_initial_interval = DEFAULT_ONLINE_CHECK_INITIAL_INTERVAL,
.online_check_max_interval = DEFAULT_ONLINE_CHECK_MAX_INTERVAL,
.auto_connect_roaming_services = false,
@@ -148,6 +155,8 @@ static struct {
#define CONF_VENDOR_CLASS_ID "VendorClassID"
#define CONF_ENABLE_ONLINE_CHECK "EnableOnlineCheck"
#define CONF_ENABLE_ONLINE_TO_READY_TRANSITION "EnableOnlineToReadyTransition"
+#define CONF_ONLINE_CHECK_IPV4_URL "OnlineCheckIpv4Url"
+#define CONF_ONLINE_CHECK_IPV6_URL "OnlineCheckIpv6Url"
#define CONF_ONLINE_CHECK_INITIAL_INTERVAL "OnlineCheckInitialInterval"
#define CONF_ONLINE_CHECK_MAX_INTERVAL "OnlineCheckMaxInterval"
#define CONF_AUTO_CONNECT_ROAMING_SERVICES "AutoConnectRoamingServices"
@@ -174,6 +183,8 @@ static const char *supported_options[] = {
CONF_VENDOR_CLASS_ID,
CONF_ENABLE_ONLINE_CHECK,
CONF_ENABLE_ONLINE_TO_READY_TRANSITION,
+ CONF_ONLINE_CHECK_IPV4_URL,
+ CONF_ONLINE_CHECK_IPV6_URL,
CONF_ONLINE_CHECK_INITIAL_INTERVAL,
CONF_ONLINE_CHECK_MAX_INTERVAL,
CONF_AUTO_CONNECT_ROAMING_SERVICES,
@@ -486,6 +497,20 @@ static void parse_config(GKeyFile *config)
g_clear_error(&error);
+ string = __connman_config_get_string(config, "General",
+ CONF_ONLINE_CHECK_IPV4_URL, &error);
+ if (!error)
+ connman_settings.online_check_ipv4_url = string;
+
+ g_clear_error(&error);
+
+ string = __connman_config_get_string(config, "General",
+ CONF_ONLINE_CHECK_IPV6_URL, &error);
+ if (!error)
+ connman_settings.online_check_ipv6_url = string;
+
+ g_clear_error(&error);
+
integer = g_key_file_get_integer(config, "General",
CONF_ONLINE_CHECK_INITIAL_INTERVAL, &error);
if (!error && integer >= 0)
@@ -769,6 +794,12 @@ char *connman_setting_get_string(const char *key)
if (g_str_equal(key, CONF_VENDOR_CLASS_ID))
return connman_settings.vendor_class_id;
+ if (g_str_equal(key, CONF_ONLINE_CHECK_IPV4_URL))
+ return connman_settings.online_check_ipv4_url;
+
+ if (g_str_equal(key, CONF_ONLINE_CHECK_IPV6_URL))
+ return connman_settings.online_check_ipv6_url;
+
return NULL;
}
@@ -994,6 +1025,8 @@ int main(int argc, char *argv[])
g_strfreev(connman_settings.blacklisted_interfaces);
g_strfreev(connman_settings.tethering_technologies);
g_free(connman_settings.vendor_class_id);
+ g_free(connman_settings.online_check_ipv4_url);
+ g_free(connman_settings.online_check_ipv6_url);
g_free(option_debug);
g_free(option_wifi);
diff --git a/src/main.conf b/src/main.conf
index df70e178742a..7e2e556c73f0 100644
--- a/src/main.conf
+++ b/src/main.conf
@@ -125,6 +125,14 @@
# Default value is true.
# EnableOnlineCheck = false
+# Urls (IPv4 and IPv6 respectively) used during the online status check.
+# WARNING: The server shall respond with 200 status code and
+# X-ConnMan-Status: online header.
+# Default values are http://ipv4.connman.net/online/status.html and
+# http://ipv6.connman.net/online/status.html respectively.
+# OnlineCheckIpv4Url= http://ipv4.connman.net/online/status.html
+# OnlineCheckIpv6Url= http://ipv6.connman.net/online/status.html
+
# Range of intervals between two online check requests.
# When an online check request fails, another one is triggered after a
# longer interval. The intervals follow the power of two series of numbers
diff --git a/src/wispr.c b/src/wispr.c
index 27f5dc13f4a2..5530d5548df1 100644
--- a/src/wispr.c
+++ b/src/wispr.c
@@ -30,9 +30,6 @@
#include "connman.h"
-#define STATUS_URL_IPV4 "http://ipv4.connman.net/online/status.html"
-#define STATUS_URL_IPV6 "http://ipv6.connman.net/online/status.html"
-
struct connman_wispr_message {
bool has_error;
const char *current_element;
@@ -96,6 +93,8 @@ static bool wispr_portal_web_result(GWebResult *result,
gpointer user_data);
static GHashTable *wispr_portal_list = NULL;
+static char *online_check_ipv4_url = NULL;
+static char *online_check_ipv6_url = NULL;
static bool enable_online_to_ready_transition = false;
static void connman_wispr_message_init(struct connman_wispr_message *msg)
@@ -905,10 +904,10 @@ static int wispr_portal_detect(struct
connman_wispr_portal_context *wp_context)
if (wp_context->type == CONNMAN_IPCONFIG_TYPE_IPV4) {
g_web_set_address_family(wp_context->web, AF_INET);
- wp_context->status_url = STATUS_URL_IPV4;
+ wp_context->status_url = online_check_ipv4_url;
} else {
g_web_set_address_family(wp_context->web, AF_INET6);
- wp_context->status_url = STATUS_URL_IPV6;
+ wp_context->status_url = online_check_ipv6_url;
}
for (i = 0; nameservers[i]; i++)
@@ -1031,6 +1030,11 @@ int __connman_wispr_init(void)
g_direct_equal, NULL,
free_connman_wispr_portal);
+ online_check_ipv4_url =
+ connman_setting_get_string("OnlineCheckIpv4Url");
+ online_check_ipv6_url =
+ connman_setting_get_string("OnlineCheckIpv6Url");
+
enable_online_to_ready_transition =
connman_setting_get_bool("EnableOnlineToReadyTransition");
--
2.25.1
------------------------------
Date: Wed, 28 Apr 2021 07:42:09 +0000
From: "VAUTRIN Emmanuel (Canal Plus Prestataire)"
<[email protected]>
Subject: [PATCH 3/3] wispr: Support of common redirection status codes
To: "[email protected]" <[email protected]>
Message-ID: <[email protected]
prd02.prod.outlook.com>
Content-Type: text/plain; charset="iso-8859-1"
The portal web result processing shall support common redirection
status codes, not only 302.
---
src/wispr.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/wispr.c b/src/wispr.c
index 5530d5548df1..ee5ec93137ce 100644
--- a/src/wispr.c
+++ b/src/wispr.c
@@ -756,7 +756,12 @@ static bool wispr_portal_web_result(GWebResult *result,
gpointer user_data)
wp_context->redirect_url, wp_context);
break;
+ case 300:
+ case 301:
case 302:
+ case 303:
+ case 307:
+ case 308:
if (!g_web_supports_tls() ||
!g_web_result_get_header(result, "Location",
&redirect)) {
--
2.25.1
------------------------------
Subject: Digest Footer
_______________________________________________
connman mailing list -- [email protected]
To unsubscribe send an email to [email protected]
------------------------------
End of connman Digest, Vol 66, Issue 33
***************************************