diff --git a/meta-webos/recipes-connectivity/connman/connman/0001-Add-support-for-the-WPS-PBS-and-PIN-mode.patch b/meta-webos/recipes-connectivity/connman/connman/0001-Add-support-for-the-WPS-PBS-and-PIN-mode.patch index 84d82a4da..9d11d3714 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0001-Add-support-for-the-WPS-PBS-and-PIN-mode.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0001-Add-support-for-the-WPS-PBS-and-PIN-mode.patch @@ -1,4 +1,4 @@ -From 1419802d7aa4557bec21ea3ee551dc3f83333d4d Mon Sep 17 00:00:00 2001 +From 54b1ad24526f7836614c5f753b71ccbf8bb0529f Mon Sep 17 00:00:00 2001 From: Vibhanshu Dhote Date: Wed, 21 Feb 2018 16:36:23 +0530 Subject: [PATCH] Add support for the WPS PBS and PIN mode @@ -29,12 +29,12 @@ Upstream-Status : Inappropriate [webOS specific] 9 files changed, 611 insertions(+), 20 deletions(-) diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h -index bfb52db7..93560c15 100644 +index 7935c3a6..56cd61ee 100644 --- a/gsupplicant/gsupplicant.h +++ b/gsupplicant/gsupplicant.h -@@ -268,6 +268,10 @@ int g_supplicant_interface_disconnect(GSupplicantInterface *interface, - GSupplicantInterfaceCallback callback, - void *user_data); +@@ -271,6 +271,10 @@ int g_supplicant_interface_disconnect(GSupplicantInterface *interface, + int g_supplicant_interface_set_bss_expiration_age(GSupplicantInterface *interface, + unsigned int bss_expiration_age); +int g_supplicant_interface_wps_cancel(GSupplicantInterface *interface, + GSupplicantInterfaceCallback callback, @@ -43,7 +43,7 @@ index bfb52db7..93560c15 100644 int g_supplicant_interface_set_apscan(GSupplicantInterface *interface, unsigned int ap_scan); -@@ -361,6 +365,7 @@ struct _GSupplicantCallbacks { +@@ -364,6 +368,7 @@ struct _GSupplicantCallbacks { void (*peer_changed) (GSupplicantPeer *peer, GSupplicantPeerState state); void (*peer_request) (GSupplicantPeer *peer); @@ -52,7 +52,7 @@ index bfb52db7..93560c15 100644 void (*disconnect_reasoncode)(GSupplicantInterface *interface, int reasoncode); diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c -index 6052f7b6..d78deffe 100644 +index f56b595f..3398340d 100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -723,6 +723,17 @@ static void remove_group(gpointer data) @@ -73,7 +73,7 @@ index 6052f7b6..d78deffe 100644 static void remove_interface(gpointer data) { GSupplicantInterface *interface = data; -@@ -3010,6 +3021,8 @@ static void signal_wps_event(const char *path, DBusMessageIter *iter) +@@ -3028,6 +3039,8 @@ static void signal_wps_event(const char *path, DBusMessageIter *iter) dbus_message_iter_next(iter); supplicant_dbus_property_foreach(iter, wps_event_args, interface); @@ -82,7 +82,7 @@ index 6052f7b6..d78deffe 100644 } static void create_peer_identifier(GSupplicantPeer *peer) -@@ -5137,6 +5150,59 @@ int g_supplicant_interface_connect(GSupplicantInterface *interface, +@@ -5155,6 +5168,59 @@ int g_supplicant_interface_connect(GSupplicantInterface *interface, return -EINPROGRESS; } @@ -169,18 +169,18 @@ index 7508a9a1..a3095fb7 100644 const char *name; enum connman_service_type type; diff --git a/plugins/wifi.c b/plugins/wifi.c -index f8c22be3..ab35c9f0 100644 +index fc304e3b..ce761dad 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c -@@ -62,6 +62,7 @@ +@@ -64,6 +64,7 @@ #define CLEANUP_TIMEOUT 8 /* in seconds */ #define INACTIVE_TIMEOUT 12 /* in seconds */ #define FAVORITE_MAXIMUM_RETRIES 2 +#define WPS_CONNECT_TIMEOUT 120 /* in seconds */ - #define BGSCAN_DEFAULT "simple:30:-45:300" + #define BGSCAN_DEFAULT "simple:30:-65:300" #define AUTOSCAN_EXPONENTIAL "exponential:3:300" -@@ -78,6 +79,8 @@ +@@ -80,6 +81,8 @@ static struct connman_technology *wifi_technology = NULL; static struct connman_technology *p2p_technology = NULL; @@ -189,7 +189,7 @@ index f8c22be3..ab35c9f0 100644 enum wifi_ap_capability{ WIFI_AP_UNKNOWN = 0, WIFI_AP_SUPPORTED = 1, -@@ -161,6 +164,11 @@ struct wifi_data { +@@ -163,6 +166,11 @@ struct wifi_data { int servicing; int disconnect_code; int assoc_code; @@ -201,7 +201,7 @@ index f8c22be3..ab35c9f0 100644 }; static GList *iface_list = NULL; -@@ -207,6 +215,17 @@ static bool is_p2p_connecting(void) +@@ -209,6 +217,17 @@ static bool is_p2p_connecting(void) return false; } @@ -219,7 +219,7 @@ index f8c22be3..ab35c9f0 100644 static void add_pending_wifi_device(struct wifi_data *wifi) { if (g_list_find(pending_wifi_device, wifi)) -@@ -783,6 +802,9 @@ static int wifi_probe(struct connman_device *device) +@@ -785,6 +804,9 @@ static int wifi_probe(struct connman_device *device) wifi->watch = connman_rtnl_add_newlink_watch(wifi->index, wifi_newlink, device); @@ -229,7 +229,7 @@ index f8c22be3..ab35c9f0 100644 if (is_p2p_connecting()) add_pending_wifi_device(wifi); else -@@ -2028,6 +2050,217 @@ static int wifi_set_regdom(struct connman_device *device, const char *alpha2) +@@ -2030,6 +2052,217 @@ static int wifi_set_regdom(struct connman_device *device, const char *alpha2) return ret; } @@ -447,7 +447,7 @@ index f8c22be3..ab35c9f0 100644 static struct connman_device_driver wifi_ng_driver = { .name = "wifi", .type = CONNMAN_DEVICE_TYPE_WIFI, -@@ -2039,6 +2272,8 @@ static struct connman_device_driver wifi_ng_driver = { +@@ -2041,6 +2274,8 @@ static struct connman_device_driver wifi_ng_driver = { .scan = wifi_scan, .stop_scan = wifi_stop_scan, .set_regdom = wifi_set_regdom, @@ -456,7 +456,7 @@ index f8c22be3..ab35c9f0 100644 }; static void system_ready(void) -@@ -2063,6 +2298,23 @@ static int network_probe(struct connman_network *network) +@@ -2065,6 +2300,23 @@ static int network_probe(struct connman_network *network) return 0; } @@ -480,7 +480,7 @@ index f8c22be3..ab35c9f0 100644 static void network_remove(struct connman_network *network) { struct connman_device *device = connman_network_get_device(network); -@@ -2076,6 +2328,10 @@ static void network_remove(struct connman_network *network) +@@ -2078,6 +2330,10 @@ static void network_remove(struct connman_network *network) if (wifi->network != network) return; @@ -491,7 +491,7 @@ index f8c22be3..ab35c9f0 100644 wifi->network = NULL; } -@@ -2193,6 +2449,9 @@ static int network_connect(struct connman_network *network) +@@ -2195,6 +2451,9 @@ static int network_connect(struct connman_network *network) if (!wifi) return -ENODEV; @@ -501,7 +501,7 @@ index f8c22be3..ab35c9f0 100644 ssid = g_try_malloc0(sizeof(GSupplicantSSID)); if (!ssid) return -ENOMEM; -@@ -2235,12 +2494,10 @@ static void disconnect_callback(int result, GSupplicantInterface *interface, +@@ -2237,12 +2496,10 @@ static void disconnect_callback(int result, GSupplicantInterface *interface, wifi->disconnecting = false; wifi->connected = false; @@ -517,7 +517,7 @@ index f8c22be3..ab35c9f0 100644 } static int network_disconnect(struct connman_network *network) -@@ -2375,20 +2632,22 @@ static bool handle_wps_completion(GSupplicantInterface *interface, +@@ -2377,20 +2634,22 @@ static bool handle_wps_completion(GSupplicantInterface *interface, unsigned int ssid_len, wps_ssid_len; const char *wps_key; @@ -554,7 +554,7 @@ index f8c22be3..ab35c9f0 100644 } wps_key = g_supplicant_interface_get_wps_key(interface); -@@ -2443,6 +2702,65 @@ static bool handle_4way_handshake_failure(GSupplicantInterface *interface, +@@ -2445,6 +2704,65 @@ static bool handle_4way_handshake_failure(GSupplicantInterface *interface, return false; } @@ -620,7 +620,7 @@ index f8c22be3..ab35c9f0 100644 static void interface_state(GSupplicantInterface *interface) { struct connman_network *network; -@@ -2450,7 +2768,10 @@ static void interface_state(GSupplicantInterface *interface) +@@ -2452,7 +2770,10 @@ static void interface_state(GSupplicantInterface *interface) struct wifi_data *wifi; GSupplicantState state = g_supplicant_interface_get_state(interface); bool wps; @@ -631,7 +631,7 @@ index f8c22be3..ab35c9f0 100644 wifi = g_supplicant_interface_get_data(interface); -@@ -2484,6 +2805,23 @@ static void interface_state(GSupplicantInterface *interface) +@@ -2486,6 +2807,23 @@ static void interface_state(GSupplicantInterface *interface) if (!network) return; @@ -655,7 +655,7 @@ index f8c22be3..ab35c9f0 100644 switch (state) { case G_SUPPLICANT_STATE_SCANNING: if (wifi->connected) -@@ -2495,6 +2833,7 @@ static void interface_state(GSupplicantInterface *interface) +@@ -2497,6 +2835,7 @@ static void interface_state(GSupplicantInterface *interface) case G_SUPPLICANT_STATE_ASSOCIATING: stop_autoscan(device); @@ -663,7 +663,7 @@ index f8c22be3..ab35c9f0 100644 if (!wifi->connected) connman_network_set_associating(network, true); -@@ -2504,6 +2843,7 @@ static void interface_state(GSupplicantInterface *interface) +@@ -2506,6 +2845,7 @@ static void interface_state(GSupplicantInterface *interface) /* though it should be already stopped: */ stop_autoscan(device); @@ -671,7 +671,7 @@ index f8c22be3..ab35c9f0 100644 if (!handle_wps_completion(interface, network, device, wifi)) break; -@@ -2512,6 +2852,7 @@ static void interface_state(GSupplicantInterface *interface) +@@ -2514,6 +2854,7 @@ static void interface_state(GSupplicantInterface *interface) wifi->disconnect_code = 0; wifi->assoc_code = 0; wifi->load_shaping_retries = 0; @@ -679,7 +679,7 @@ index f8c22be3..ab35c9f0 100644 break; case G_SUPPLICANT_STATE_DISCONNECTED: -@@ -2560,7 +2901,12 @@ static void interface_state(GSupplicantInterface *interface) +@@ -2562,7 +2903,12 @@ static void interface_state(GSupplicantInterface *interface) } wifi->disconnecting = false; @@ -693,7 +693,7 @@ index f8c22be3..ab35c9f0 100644 break; -@@ -3236,6 +3582,7 @@ static const GSupplicantCallbacks callbacks = { +@@ -3238,6 +3584,7 @@ static const GSupplicantCallbacks callbacks = { .peer_lost = peer_lost, .peer_changed = peer_changed, .peer_request = peer_request, @@ -702,10 +702,10 @@ index f8c22be3..ab35c9f0 100644 .disconnect_reasoncode = disconnect_reasoncode, .assoc_status_code = assoc_status_code, diff --git a/src/connman.h b/src/connman.h -index 8101c7b2..02c509fd 100644 +index 3bdc0dc7..86e481e6 100644 --- a/src/connman.h +++ b/src/connman.h -@@ -567,6 +567,8 @@ enum connman_service_type __connman_device_get_service_type(struct connman_devic +@@ -566,6 +566,8 @@ enum connman_service_type __connman_device_get_service_type(struct connman_devic struct connman_device *__connman_device_find_device(enum connman_service_type type); int __connman_device_request_scan(enum connman_service_type type); int __connman_device_request_scan_full(enum connman_service_type type); @@ -842,10 +842,10 @@ index 264c5e2d..d3048379 100644 { struct ifreq ifr; diff --git a/src/service.c b/src/service.c -index 3202f26c..a6bc6d75 100644 +index 2f497d10..58d91d74 100644 --- a/src/service.c +++ b/src/service.c -@@ -49,6 +49,8 @@ static unsigned int vpn_autoconnect_id = 0; +@@ -55,6 +55,8 @@ static unsigned int vpn_autoconnect_id = 0; static struct connman_service *current_default = NULL; static bool services_dirty = false; diff --git a/meta-webos/recipes-connectivity/connman/connman/0002-Set-IPv6-state-same-as-IPV4-on-disconnect.patch b/meta-webos/recipes-connectivity/connman/connman/0002-Set-IPv6-state-same-as-IPV4-on-disconnect.patch index 4f92861be..a66e0a556 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0002-Set-IPv6-state-same-as-IPV4-on-disconnect.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0002-Set-IPv6-state-same-as-IPV4-on-disconnect.patch @@ -1,4 +1,4 @@ -From 4cea8a12d78453223670f9aedc1d620a57168d3d Mon Sep 17 00:00:00 2001 +From a72cc681088bea6ad92642bfb5cc80d7a5738f74 Mon Sep 17 00:00:00 2001 From: "krishna.konwar" Date: Fri, 3 Aug 2018 16:17:00 +0530 Subject: [PATCH] Set IPv6 state same as IPV4 on disconnect @@ -17,10 +17,10 @@ Upstream-Status : Inappropriate [webOS specific] 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/service.c b/src/service.c -index a6bc6d75..8cb095df 100644 +index 58d91d74..ff44f9c2 100644 --- a/src/service.c +++ b/src/service.c -@@ -6168,8 +6168,10 @@ int __connman_service_ipconfig_indicate_state(struct connman_service *service, +@@ -6294,8 +6294,10 @@ int __connman_service_ipconfig_indicate_state(struct connman_service *service, if (service->state == CONNMAN_SERVICE_STATE_IDLE) return -EINVAL; diff --git a/meta-webos/recipes-connectivity/connman/connman/0003-Fix-for-wifi-network-switching-and-unable-to-connect.patch b/meta-webos/recipes-connectivity/connman/connman/0003-Fix-for-wifi-network-switching-and-unable-to-connect.patch index 3b6800cf5..0c46d2b74 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0003-Fix-for-wifi-network-switching-and-unable-to-connect.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0003-Fix-for-wifi-network-switching-and-unable-to-connect.patch @@ -1,4 +1,4 @@ -From 3a9d741b9adc23c28f9158bf34498c4d2177a310 Mon Sep 17 00:00:00 2001 +From d1c441a09e73f5afb3c9869b67ef753d7c989adb Mon Sep 17 00:00:00 2001 From: Vasu Kantubukta Date: Wed, 19 Dec 2018 21:02:59 +0530 Subject: [PATCH] Fix for wifi network switching and unable to connect to open @@ -32,10 +32,10 @@ Upstream-Status: Inappropriate [webOS specific] 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/wifi.c b/plugins/wifi.c -index ab35c9f0..bd9d2eaf 100644 +index ce761dad..246d7335 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c -@@ -2901,7 +2901,7 @@ static void interface_state(GSupplicantInterface *interface) +@@ -2903,7 +2903,7 @@ static void interface_state(GSupplicantInterface *interface) } wifi->disconnecting = false; diff --git a/meta-webos/recipes-connectivity/connman/connman/0004-Multiple-wi-fi-networks-are-connected-via-WPS-PIN.patch b/meta-webos/recipes-connectivity/connman/connman/0004-Multiple-wi-fi-networks-are-connected-via-WPS-PIN.patch index 7d8c0274f..d88414ad3 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0004-Multiple-wi-fi-networks-are-connected-via-WPS-PIN.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0004-Multiple-wi-fi-networks-are-connected-via-WPS-PIN.patch @@ -1,4 +1,4 @@ -From 4078b3081de5328deb971a762d3e2fd94dab4b14 Mon Sep 17 00:00:00 2001 +From 7983e2d7280ca45b4177d0ad1a965b51d058cd2f Mon Sep 17 00:00:00 2001 From: "sachin.shetty" Date: Mon, 24 Jun 2019 16:55:43 +0530 Subject: [PATCH] Multiple wi-fi networks are connected via WPS PIN. @@ -29,10 +29,10 @@ Upstream-Status: Inappropriate [webOS specific] 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c -index d78deffe..e8d4d69e 100644 +index 3398340d..13e27206 100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c -@@ -2399,7 +2399,7 @@ static void interface_property(const char *key, DBusMessageIter *iter, +@@ -2417,7 +2417,7 @@ static void interface_property(const char *key, DBusMessageIter *iter, g_strdup(interface->ifname), g_strdup(str)); } } else if (g_strcmp0(key, "CurrentBSS") == 0) { diff --git a/meta-webos/recipes-connectivity/connman/connman/0005-Support-additional-feature-for-tethering.patch b/meta-webos/recipes-connectivity/connman/connman/0005-Support-additional-feature-for-tethering.patch index 5a288b192..3dc761ee2 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0005-Support-additional-feature-for-tethering.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0005-Support-additional-feature-for-tethering.patch @@ -1,4 +1,4 @@ -From 2f2b63a0b51a553c0b8ea382bdaeab1b31b7e860 Mon Sep 17 00:00:00 2001 +From 0f9973fd0187fd5fb44e4b4f09a1d16eed5a2bcb Mon Sep 17 00:00:00 2001 From: "sungmok.shin" Date: Tue, 25 Jun 2019 13:11:11 +0900 Subject: [PATCH] Support additional feature for tethering @@ -40,10 +40,10 @@ index a3095fb7..1d78649c 100644 void connman_technology_wps_failed_notify(struct connman_technology *technology); diff --git a/plugins/wifi.c b/plugins/wifi.c -index bd9d2eaf..76ae1df7 100644 +index 246d7335..fb9f064f 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c -@@ -3604,16 +3604,25 @@ static void tech_remove(struct connman_technology *technology) +@@ -3606,16 +3606,25 @@ static void tech_remove(struct connman_technology *technology) static GSupplicantSSID *ssid_ap_init(const char *ssid, const char *passphrase) { GSupplicantSSID *ap; @@ -71,10 +71,10 @@ index bd9d2eaf..76ae1df7 100644 if (!passphrase || strlen(passphrase) == 0) { ap->security = G_SUPPLICANT_SECURITY_NONE; diff --git a/src/connman.h b/src/connman.h -index 02c509fd..cc32d065 100644 +index 86e481e6..57f218f9 100644 --- a/src/connman.h +++ b/src/connman.h -@@ -642,6 +642,7 @@ const char *__connman_tethering_get_bridge(void); +@@ -641,6 +641,7 @@ const char *__connman_tethering_get_bridge(void); int __connman_tethering_set_enabled(void); void __connman_tethering_set_disabled(void); void __connman_tethering_list_clients(DBusMessageIter *array); @@ -283,7 +283,7 @@ index 0119c2d5..ae494c00 100644 } diff --git a/src/tethering.c b/src/tethering.c -index e04756ff..99abf46c 100644 +index e2687b6e..b465bdd3 100644 --- a/src/tethering.c +++ b/src/tethering.c @@ -49,6 +49,7 @@ diff --git a/meta-webos/recipes-connectivity/connman/connman/0006-Support-channel-frequency-of-scanned-AP.patch b/meta-webos/recipes-connectivity/connman/connman/0006-Support-channel-frequency-of-scanned-AP.patch index 00c53f9eb..62b00991e 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0006-Support-channel-frequency-of-scanned-AP.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0006-Support-channel-frequency-of-scanned-AP.patch @@ -1,4 +1,4 @@ -From 76d9407a758cd370da9049e6fc68b403a94b0bbc Mon Sep 17 00:00:00 2001 +From db73b8d767099bb8d806e0142c8f78f365a179ad Mon Sep 17 00:00:00 2001 From: "sungmok.shin" Date: Wed, 28 Aug 2019 15:35:45 +0900 Subject: [PATCH] Support channel frequency of scanned AP @@ -17,10 +17,10 @@ Support channel frequency of scanned AP 9 files changed, 583 insertions(+), 2 deletions(-) diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h -index 93560c15..838cf1d8 100644 +index 56cd61ee..46a12191 100644 --- a/gsupplicant/gsupplicant.h +++ b/gsupplicant/gsupplicant.h -@@ -304,6 +304,14 @@ GSupplicantPeer *g_supplicant_interface_peer_lookup(GSupplicantInterface *interf +@@ -307,6 +307,14 @@ GSupplicantPeer *g_supplicant_interface_peer_lookup(GSupplicantInterface *interf const char *identifier); bool g_supplicant_interface_is_p2p_finding(GSupplicantInterface *interface); @@ -35,7 +35,7 @@ index 93560c15..838cf1d8 100644 /* Network and Peer API */ struct _GSupplicantNetwork; struct _GSupplicantGroup; -@@ -326,6 +334,17 @@ dbus_bool_t g_supplicant_network_is_wps_active(GSupplicantNetwork *network); +@@ -329,6 +337,17 @@ dbus_bool_t g_supplicant_network_is_wps_active(GSupplicantNetwork *network); dbus_bool_t g_supplicant_network_is_wps_pbc(GSupplicantNetwork *network); dbus_bool_t g_supplicant_network_is_wps_advertizing(GSupplicantNetwork *network); @@ -54,7 +54,7 @@ index 93560c15..838cf1d8 100644 const char *g_supplicant_peer_get_path(GSupplicantPeer *peer); const char *g_supplicant_peer_get_identifier(GSupplicantPeer *peer); diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c -index e8d4d69e..e54a219a 100644 +index 13e27206..9ed96f36 100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -169,6 +169,10 @@ struct _GSupplicantInterface { @@ -68,7 +68,7 @@ index e8d4d69e..e54a219a 100644 bool p2p_support; bool p2p_finding; bool ap_create_in_progress; -@@ -1141,6 +1145,38 @@ unsigned int g_supplicant_interface_get_max_scan_ssids( +@@ -1159,6 +1163,38 @@ unsigned int g_supplicant_interface_get_max_scan_ssids( return interface->max_scan_ssids; } @@ -107,7 +107,7 @@ index e8d4d69e..e54a219a 100644 static void set_network_enabled(DBusMessageIter *iter, void *user_data) { dbus_bool_t enable = *(dbus_bool_t *)user_data; -@@ -1290,6 +1326,46 @@ dbus_bool_t g_supplicant_network_is_wps_advertizing(GSupplicantNetwork *network) +@@ -1308,6 +1344,46 @@ dbus_bool_t g_supplicant_network_is_wps_advertizing(GSupplicantNetwork *network) return FALSE; } @@ -154,7 +154,7 @@ index e8d4d69e..e54a219a 100644 GSupplicantInterface *g_supplicant_peer_get_interface(GSupplicantPeer *peer) { if (!peer) -@@ -2284,6 +2360,36 @@ static void wps_property(const char *key, DBusMessageIter *iter, +@@ -2302,6 +2378,36 @@ static void wps_property(const char *key, DBusMessageIter *iter, } @@ -191,7 +191,7 @@ index e8d4d69e..e54a219a 100644 static void interface_property(const char *key, DBusMessageIter *iter, void *user_data) { -@@ -2411,6 +2517,9 @@ static void interface_property(const char *key, DBusMessageIter *iter, +@@ -2429,6 +2535,9 @@ static void interface_property(const char *key, DBusMessageIter *iter, } else if (g_strcmp0(key, "Networks") == 0) { supplicant_dbus_array_foreach(iter, interface_network_added, interface); @@ -201,7 +201,7 @@ index e8d4d69e..e54a219a 100644 } else if (g_strcmp0(key, "DisconnectReason") == 0) { int reason_code; if (dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_INVALID) { -@@ -5984,3 +6093,48 @@ void g_supplicant_unregister(const GSupplicantCallbacks *callbacks) +@@ -6002,3 +6111,48 @@ void g_supplicant_unregister(const GSupplicantCallbacks *callbacks) callbacks_pointer = NULL; eap_methods = 0; } @@ -336,10 +336,10 @@ index 8f87d7c5..ad764e64 100644 const char *name); int connman_network_set_strength(struct connman_network *network, diff --git a/plugins/wifi.c b/plugins/wifi.c -index 76ae1df7..22d0e997 100644 +index fb9f064f..034fecd2 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c -@@ -171,6 +171,12 @@ struct wifi_data { +@@ -173,6 +173,12 @@ struct wifi_data { bool wps_start_deferred; }; @@ -352,7 +352,7 @@ index 76ae1df7..22d0e997 100644 static GList *iface_list = NULL; static GList *pending_wifi_device = NULL; -@@ -182,6 +188,27 @@ static int tech_set_tethering(struct connman_technology *technology, +@@ -184,6 +190,27 @@ static int tech_set_tethering(struct connman_technology *technology, const char *identifier, const char *passphrase, const char *bridge, bool enabled); @@ -380,7 +380,7 @@ index 76ae1df7..22d0e997 100644 static int p2p_tech_probe(struct connman_technology *technology) { p2p_technology = technology; -@@ -2261,6 +2288,52 @@ static int wifi_cancel_wps(struct connman_device *device) +@@ -2263,6 +2290,52 @@ static int wifi_cancel_wps(struct connman_device *device) return cancel_wps(wifi); } @@ -433,7 +433,7 @@ index 76ae1df7..22d0e997 100644 static struct connman_device_driver wifi_ng_driver = { .name = "wifi", .type = CONNMAN_DEVICE_TYPE_WIFI, -@@ -2273,7 +2346,8 @@ static struct connman_device_driver wifi_ng_driver = { +@@ -2275,7 +2348,8 @@ static struct connman_device_driver wifi_ng_driver = { .stop_scan = wifi_stop_scan, .set_regdom = wifi_set_regdom, .start_wps = wifi_start_wps, @@ -443,7 +443,7 @@ index 76ae1df7..22d0e997 100644 }; static void system_ready(void) -@@ -3101,6 +3175,7 @@ static void network_added(GSupplicantNetwork *supplicant_network) +@@ -3103,6 +3177,7 @@ static void network_added(GSupplicantNetwork *supplicant_network) bool wps_pbc; bool wps_ready; bool wps_advertizing; @@ -451,7 +451,7 @@ index 76ae1df7..22d0e997 100644 mode = g_supplicant_network_get_mode(supplicant_network); identifier = g_supplicant_network_get_identifier(supplicant_network); -@@ -3120,6 +3195,7 @@ static void network_added(GSupplicantNetwork *supplicant_network) +@@ -3122,6 +3197,7 @@ static void network_added(GSupplicantNetwork *supplicant_network) wps_ready = g_supplicant_network_is_wps_active(supplicant_network); wps_advertizing = g_supplicant_network_is_wps_advertizing( supplicant_network); @@ -459,7 +459,7 @@ index 76ae1df7..22d0e997 100644 if (!wifi) return; -@@ -3186,6 +3262,11 @@ static void network_added(GSupplicantNetwork *supplicant_network) +@@ -3188,6 +3264,11 @@ static void network_added(GSupplicantNetwork *supplicant_network) wifi->hidden = NULL; } } @@ -471,7 +471,7 @@ index 76ae1df7..22d0e997 100644 } static void network_removed(GSupplicantNetwork *network) -@@ -3222,11 +3303,13 @@ static void network_changed(GSupplicantNetwork *network, const char *property) +@@ -3224,11 +3305,13 @@ static void network_changed(GSupplicantNetwork *network, const char *property) const char *name, *identifier; struct connman_network *connman_network; bool update_needed; @@ -485,7 +485,7 @@ index 76ae1df7..22d0e997 100644 DBG("name %s", name); -@@ -3237,6 +3320,11 @@ static void network_changed(GSupplicantNetwork *network, const char *property) +@@ -3239,6 +3322,11 @@ static void network_changed(GSupplicantNetwork *network, const char *property) if (!connman_network) return; @@ -598,7 +598,7 @@ index d3048379..ce70da90 100644 { struct ifreq ifr; diff --git a/src/network.c b/src/network.c -index 56fe24ff..140d09b1 100644 +index f2ab16bd..161e84e0 100644 --- a/src/network.c +++ b/src/network.c @@ -55,6 +55,12 @@ @@ -750,18 +750,18 @@ index 56fe24ff..140d09b1 100644 * connman_network_set_name: * @network: network structure diff --git a/src/service.c b/src/service.c -index 8cb095df..9e4a6c6d 100644 +index ff44f9c2..66160cc7 100644 --- a/src/service.c +++ b/src/service.c -@@ -146,6 +146,7 @@ static struct connman_ipconfig *create_ip4config(struct connman_service *service - static struct connman_ipconfig *create_ip6config(struct connman_service *service, +@@ -153,6 +153,7 @@ static struct connman_ipconfig *create_ip6config(struct connman_service *service int index); static void dns_changed(struct connman_service *service); + static void vpn_auto_connect(void); +static void append_bsses(DBusMessageIter *iter, void *user_data); struct find_data { const char *path; -@@ -1574,6 +1575,13 @@ static void strength_changed(struct connman_service *service) +@@ -1620,6 +1621,13 @@ static void strength_changed(struct connman_service *service) connman_dbus_property_changed_basic(service->path, CONNMAN_SERVICE_INTERFACE, "Strength", DBUS_TYPE_BYTE, &service->strength); @@ -775,7 +775,7 @@ index 8cb095df..9e4a6c6d 100644 } static void favorite_changed(struct connman_service *service) -@@ -2416,6 +2424,57 @@ int connman_service_iterate_services(connman_service_iterate_cb cb, +@@ -2474,6 +2482,57 @@ int connman_service_iterate_services(connman_service_iterate_cb cb, return ret; } @@ -833,7 +833,7 @@ index 8cb095df..9e4a6c6d 100644 static void append_properties(DBusMessageIter *dict, dbus_bool_t limited, struct connman_service *service) { -@@ -2481,9 +2540,21 @@ static void append_properties(DBusMessageIter *dict, dbus_bool_t limited, +@@ -2539,9 +2598,21 @@ static void append_properties(DBusMessageIter *dict, dbus_bool_t limited, append_ethernet, service); break; case CONNMAN_SERVICE_TYPE_WIFI: diff --git a/meta-webos/recipes-connectivity/connman/connman/0007-Provide-station-information-when-AP-mode.patch b/meta-webos/recipes-connectivity/connman/connman/0007-Provide-station-information-when-AP-mode.patch index 2755a55a0..7ec742995 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0007-Provide-station-information-when-AP-mode.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0007-Provide-station-information-when-AP-mode.patch @@ -1,4 +1,4 @@ -From 12ea7737048f410769e46309dcc9128dc8b35ce4 Mon Sep 17 00:00:00 2001 +From fdf3b71aab6a8d0f33ef65862dc9d29df4b62d02 Mon Sep 17 00:00:00 2001 From: "sungmok.shin" Date: Sat, 31 Aug 2019 14:41:49 +0900 Subject: [PATCH] Provide station information when AP mode @@ -16,10 +16,10 @@ Provide station information when AP mode 8 files changed, 239 insertions(+) diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h -index 838cf1d8..1a72e48c 100644 +index 46a12191..04ebcc04 100644 --- a/gsupplicant/gsupplicant.h +++ b/gsupplicant/gsupplicant.h -@@ -375,6 +375,8 @@ struct _GSupplicantCallbacks { +@@ -378,6 +378,8 @@ struct _GSupplicantCallbacks { void (*network_changed) (GSupplicantNetwork *network, const char *property); void (*network_associated) (GSupplicantNetwork *network); @@ -29,10 +29,10 @@ index 838cf1d8..1a72e48c 100644 const char *addr); void (*sta_deauthorized) (GSupplicantInterface *interface, diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c -index e54a219a..2b93da8b 100644 +index 9ed96f36..c95ca62b 100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c -@@ -3134,6 +3134,56 @@ static void signal_wps_event(const char *path, DBusMessageIter *iter) +@@ -3152,6 +3152,56 @@ static void signal_wps_event(const char *path, DBusMessageIter *iter) callback_wps_state(interface); } @@ -89,7 +89,7 @@ index e54a219a..2b93da8b 100644 static void create_peer_identifier(GSupplicantPeer *peer) { const unsigned char test[ETH_ALEN] = {}; -@@ -3696,6 +3746,9 @@ static struct { +@@ -3714,6 +3764,9 @@ static struct { { SUPPLICANT_INTERFACE ".Interface", "StaAuthorized", signal_sta_authorized }, { SUPPLICANT_INTERFACE ".Interface", "StaDeauthorized", signal_sta_deauthorized }, @@ -113,10 +113,10 @@ index 1d78649c..60686900 100644 void connman_technology_regdom_notify(struct connman_technology *technology, const char *alpha2); diff --git a/plugins/wifi.c b/plugins/wifi.c -index 22d0e997..5914c639 100644 +index 034fecd2..f5a6bc6e 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c -@@ -3444,6 +3444,25 @@ static void sta_deauthorized(GSupplicantInterface *interface, +@@ -3446,6 +3446,25 @@ static void sta_deauthorized(GSupplicantInterface *interface, __connman_tethering_client_unregister(addr); } @@ -142,7 +142,7 @@ index 22d0e997..5914c639 100644 static void apply_peer_services(GSupplicantPeer *peer, struct connman_peer *connman_peer) { -@@ -3664,6 +3683,8 @@ static const GSupplicantCallbacks callbacks = { +@@ -3666,6 +3685,8 @@ static const GSupplicantCallbacks callbacks = { .network_removed = network_removed, .network_changed = network_changed, .network_associated = network_associated, @@ -152,10 +152,10 @@ index 22d0e997..5914c639 100644 .sta_deauthorized = sta_deauthorized, .peer_found = peer_found, diff --git a/src/connman.h b/src/connman.h -index cc32d065..3d26e599 100644 +index 57f218f9..374b0def 100644 --- a/src/connman.h +++ b/src/connman.h -@@ -635,10 +635,21 @@ bool __connman_config_address_provisioned(const char *address, +@@ -634,10 +634,21 @@ bool __connman_config_address_provisioned(const char *address, #include @@ -261,7 +261,7 @@ index 5bfd48f6..aa4a1c69 100644 + DBUS_TYPE_STRING, append_station_mac, NULL); +} diff --git a/src/tethering.c b/src/tethering.c -index 99abf46c..67d304f3 100644 +index b465bdd3..83df2896 100644 --- a/src/tethering.c +++ b/src/tethering.c @@ -29,6 +29,7 @@ diff --git a/meta-webos/recipes-connectivity/connman/connman/0008-Fix-compile-error-regarding-connman_tethering_get_st.patch b/meta-webos/recipes-connectivity/connman/connman/0008-Fix-compile-error-regarding-connman_tethering_get_st.patch index 6679b0950..b6c0d3de5 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0008-Fix-compile-error-regarding-connman_tethering_get_st.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0008-Fix-compile-error-regarding-connman_tethering_get_st.patch @@ -1,4 +1,4 @@ -From e1203b9bda2d2ebee4122caba16a5d7fa0a7ba67 Mon Sep 17 00:00:00 2001 +From 299e98276bb43d74d26d0356556c283e3b4bb962 Mon Sep 17 00:00:00 2001 From: "sungmok.shin" Date: Mon, 23 Sep 2019 23:08:32 +0900 Subject: [PATCH] Fix compile error regarding connman_tethering_get_sta_hash @@ -24,7 +24,7 @@ index aa4a1c69..54a32b33 100644 gpointer key, value; g_hash_table_iter_init (&iterator, sta_hash); diff --git a/src/tethering.c b/src/tethering.c -index 67d304f3..5f371e71 100644 +index 83df2896..1392137c 100644 --- a/src/tethering.c +++ b/src/tethering.c @@ -170,6 +170,8 @@ GHashTable *__connman_tethering_get_sta_hash() diff --git a/meta-webos/recipes-connectivity/connman/connman/0009-Fix-the-wifi-connection-failure.patch b/meta-webos/recipes-connectivity/connman/connman/0009-Fix-the-wifi-connection-failure.patch index ce62ad82b..f15d840fd 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0009-Fix-the-wifi-connection-failure.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0009-Fix-the-wifi-connection-failure.patch @@ -1,4 +1,4 @@ -From a8e2ae978dca12b309676ff87a3ccda90524ca0a Mon Sep 17 00:00:00 2001 +From 384a72d7c0c98f13ed3af32f09a75a68493c1de0 Mon Sep 17 00:00:00 2001 From: Seungwoo Yang Date: Wed, 22 Jun 2016 12:35:12 +0900 Subject: [PATCH] Fix the wifi connection failure @@ -32,10 +32,10 @@ Tested-by: Rajesh Kanna 1 file changed, 5 insertions(+) diff --git a/src/service.c b/src/service.c -index edbdd51d..327a8327 100644 +index 66160cc7..ac7a140f 100644 --- a/src/service.c +++ b/src/service.c -@@ -7440,6 +7440,11 @@ int __connman_service_disconnect(struct connman_service *service) +@@ -6728,6 +6728,11 @@ int __connman_service_disconnect(struct connman_service *service) __connman_ipconfig_set_proxy_autoconfig(service->ipconfig_ipv6, NULL); @@ -47,6 +47,3 @@ index edbdd51d..327a8327 100644 __connman_ipconfig_address_remove(service->ipconfig_ipv4); settings_changed(service, service->ipconfig_ipv4); --- -2.17.1 - diff --git a/meta-webos/recipes-connectivity/connman/connman/0014-Implementing-the-configuration-options-related-to-P2.patch b/meta-webos/recipes-connectivity/connman/connman/0010-Implementing-the-configuration-options-related-to-P2.patch similarity index 84% rename from meta-webos/recipes-connectivity/connman/connman/0014-Implementing-the-configuration-options-related-to-P2.patch rename to meta-webos/recipes-connectivity/connman/connman/0010-Implementing-the-configuration-options-related-to-P2.patch index a1e9255ed..7dd355577 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0014-Implementing-the-configuration-options-related-to-P2.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0010-Implementing-the-configuration-options-related-to-P2.patch @@ -1,7 +1,7 @@ -From 50379996de1e30f9ba8e365b8f96397bb936d47a Mon Sep 17 00:00:00 2001 +From a95c72f57740e0a8fd3d66f3bad3f16070e8f3ae Mon Sep 17 00:00:00 2001 From: "sungmok.shin" Date: Tue, 21 Apr 2020 09:27:33 +0900 -Subject: [PATCH 1/2] Implementing the configuration options related to P2P +Subject: [PATCH] Implementing the configuration options related to P2P --- gsupplicant/gsupplicant.h | 2 +- @@ -10,7 +10,7 @@ Subject: [PATCH 1/2] Implementing the configuration options related to P2P 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h -index a3e5d51..6cfb6d2 100644 +index 04ebcc04..e034cade 100644 --- a/gsupplicant/gsupplicant.h +++ b/gsupplicant/gsupplicant.h @@ -219,7 +219,7 @@ typedef void (*GSupplicantInterfaceCallback) (int result, @@ -23,7 +23,7 @@ index a3e5d51..6cfb6d2 100644 void *user_data); int g_supplicant_interface_remove(GSupplicantInterface *interface, diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c -index a4d8257..9119cb0 100644 +index c95ca62b..8c008319 100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -278,6 +278,7 @@ struct interface_create_data { @@ -34,7 +34,7 @@ index a4d8257..9119cb0 100644 GSupplicantInterface *interface; GSupplicantInterfaceCallback callback; void *user_data; -@@ -4051,6 +4052,11 @@ static void interface_create_params(DBusMessageIter *iter, void *user_data) +@@ -4174,6 +4175,11 @@ static void interface_create_params(DBusMessageIter *iter, void *user_data) DBUS_TYPE_STRING, &config_file); } @@ -46,7 +46,7 @@ index a4d8257..9119cb0 100644 supplicant_dbus_dict_close(iter, &dict); } -@@ -4124,7 +4130,7 @@ static void interface_get_params(DBusMessageIter *iter, void *user_data) +@@ -4247,7 +4253,7 @@ static void interface_get_params(DBusMessageIter *iter, void *user_data) } int g_supplicant_interface_create(const char *ifname, const char *driver, @@ -55,7 +55,7 @@ index a4d8257..9119cb0 100644 GSupplicantInterfaceCallback callback, void *user_data) { -@@ -4146,6 +4152,7 @@ int g_supplicant_interface_create(const char *ifname, const char *driver, +@@ -4269,6 +4275,7 @@ int g_supplicant_interface_create(const char *ifname, const char *driver, data->ifname = g_strdup(ifname); data->driver = g_strdup(driver); data->bridge = g_strdup(bridge); @@ -64,10 +64,10 @@ index a4d8257..9119cb0 100644 data->user_data = user_data; diff --git a/plugins/wifi.c b/plugins/wifi.c -index c41356d..ded7ef6 100644 +index f5a6bc6e..c76ae2be 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c -@@ -1536,6 +1536,27 @@ static void interface_create_callback(int result, +@@ -1590,6 +1590,27 @@ static void interface_create_callback(int result, } } @@ -95,7 +95,7 @@ index c41356d..ded7ef6 100644 static int wifi_enable(struct connman_device *device) { struct wifi_data *wifi = connman_device_get_data(device); -@@ -1554,7 +1575,8 @@ static int wifi_enable(struct connman_device *device) +@@ -1608,7 +1629,8 @@ static int wifi_enable(struct connman_device *device) return -EINPROGRESS; interface = connman_inet_ifname(index); @@ -105,7 +105,7 @@ index c41356d..ded7ef6 100644 interface_create_callback, wifi); g_free(interface); -@@ -3675,7 +3697,7 @@ static void sta_remove_callback(int result, +@@ -3837,7 +3859,7 @@ static void sta_remove_callback(int result, info->wifi->interface = NULL; @@ -114,6 +114,3 @@ index c41356d..ded7ef6 100644 ap_create_callback, info); } --- -2.17.1 - diff --git a/meta-webos/recipes-connectivity/connman/connman/0015-Read-WpaSupplicantConfigFile-from-main-configuration.patch b/meta-webos/recipes-connectivity/connman/connman/0011-Read-WpaSupplicantConfigFile-from-main-configuration.patch similarity index 94% rename from meta-webos/recipes-connectivity/connman/connman/0015-Read-WpaSupplicantConfigFile-from-main-configuration.patch rename to meta-webos/recipes-connectivity/connman/connman/0011-Read-WpaSupplicantConfigFile-from-main-configuration.patch index eb0f3222c..811612949 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0015-Read-WpaSupplicantConfigFile-from-main-configuration.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0011-Read-WpaSupplicantConfigFile-from-main-configuration.patch @@ -1,4 +1,4 @@ -From b7ed5587cdd7bbe2600402b930a2524c799a02b3 Mon Sep 17 00:00:00 2001 +From ac24b5350701baad92a6b8d8feab0a29333f2a10 Mon Sep 17 00:00:00 2001 From: "sungmok.shin" Date: Tue, 4 Aug 2020 09:42:25 +0900 Subject: [PATCH] Read WpaSupplicantConfigFile from main configuration @@ -22,10 +22,10 @@ index a8820217..3c87e77d 100644 unsigned int *connman_setting_get_uint_list(const char *key); diff --git a/plugins/wifi.c b/plugins/wifi.c -index e6544c69..4a8ec19f 100644 +index c76ae2be..429a50c4 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c -@@ -1539,27 +1539,6 @@ static void interface_create_callback(int result, +@@ -1590,27 +1590,6 @@ static void interface_create_callback(int result, } } @@ -53,7 +53,7 @@ index e6544c69..4a8ec19f 100644 static int wifi_enable(struct connman_device *device) { struct wifi_data *wifi = connman_device_get_data(device); -@@ -1578,7 +1557,7 @@ static int wifi_enable(struct connman_device *device) +@@ -1629,7 +1608,7 @@ static int wifi_enable(struct connman_device *device) return -EINPROGRESS; interface = connman_inet_ifname(index); @@ -135,6 +135,3 @@ index 2371771f..c579fa18 100644 char **connman_setting_get_string_list(const char *key) { if (g_str_equal(key, CONF_PREF_TIMESERVERS)) --- -2.17.1 - diff --git a/meta-webos/recipes-connectivity/connman/connman/0016-Send-properties-changed-signal-in-case-of-interface-.patch b/meta-webos/recipes-connectivity/connman/connman/0012-Send-properties-changed-signal-in-case-of-interface-.patch similarity index 95% rename from meta-webos/recipes-connectivity/connman/connman/0016-Send-properties-changed-signal-in-case-of-interface-.patch rename to meta-webos/recipes-connectivity/connman/connman/0012-Send-properties-changed-signal-in-case-of-interface-.patch index 6d88dfb03..9edb2b7fb 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0016-Send-properties-changed-signal-in-case-of-interface-.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0012-Send-properties-changed-signal-in-case-of-interface-.patch @@ -1,4 +1,4 @@ -From c036b3f43900d34b448968fecdcf4b28699f39bb Mon Sep 17 00:00:00 2001 +From c29db794384aeaa87b800756d8f42ccc320ceed3 Mon Sep 17 00:00:00 2001 From: Rakes Pani Date: Fri, 4 Dec 2020 14:31:45 +0530 Subject: [PATCH] Send properties changed signal in case of interface change @@ -28,7 +28,7 @@ Upstream-Status: Inappropriate[webos specific] 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/include/technology.h b/include/technology.h -index 6068690..8b4f159 100644 +index 60686900..8b4f159c 100644 --- a/include/technology.h +++ b/include/technology.h @@ -38,6 +38,7 @@ struct connman_technology; @@ -40,7 +40,7 @@ index 6068690..8b4f159 100644 int connman_technology_remove_station(char *mac); int connman_technology_set_regdom(const char *alpha2); diff --git a/plugins/ethernet.c b/plugins/ethernet.c -index b0395c8..6bed7de 100644 +index ed4208ad..fc8cd433 100644 --- a/plugins/ethernet.c +++ b/plugins/ethernet.c @@ -345,6 +345,8 @@ static void eth_tech_add_interface(struct connman_technology *technology, @@ -61,7 +61,7 @@ index b0395c8..6bed7de 100644 static void eth_tech_enable_tethering(struct connman_technology *technology, diff --git a/src/technology.c b/src/technology.c -index 54a32b3..5bfc1c5 100644 +index 54a32b33..5bfc1c5f 100644 --- a/src/technology.c +++ b/src/technology.c @@ -554,6 +554,21 @@ static void append_interfaces(DBusMessageIter *iter, void *user_data) @@ -97,6 +97,3 @@ index 54a32b3..5bfc1c5 100644 g_free(name); technology = technology_find(type); --- -2.26.0 - diff --git a/meta-webos/recipes-connectivity/connman/connman/0017-Added-new-method-SetDefault-for-Interface-net.connma.patch b/meta-webos/recipes-connectivity/connman/connman/0013-Added-new-method-SetDefault-for-Interface-net.connma.patch similarity index 93% rename from meta-webos/recipes-connectivity/connman/connman/0017-Added-new-method-SetDefault-for-Interface-net.connma.patch rename to meta-webos/recipes-connectivity/connman/connman/0013-Added-new-method-SetDefault-for-Interface-net.connma.patch index bd18b5512..960b2cbb0 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0017-Added-new-method-SetDefault-for-Interface-net.connma.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0013-Added-new-method-SetDefault-for-Interface-net.connma.patch @@ -1,4 +1,4 @@ -From d4270fcedb986544a14c3f5d15fc9a3938df7013 Mon Sep 17 00:00:00 2001 +From 6c6e94ec215b04014862adaf65d7ca55c1c3d3ea Mon Sep 17 00:00:00 2001 From: Rakes Pani Date: Tue, 5 Jan 2021 13:55:12 +0530 Subject: [PATCH] Added new method SetDefault for Interface net.connman.Service @@ -25,10 +25,10 @@ Upstream-Status: Inappropriate[webos specific] 1 file changed, 111 insertions(+) diff --git a/src/service.c b/src/service.c -index 50e04d3..bf5c219 100644 +index ac7a140f..c463d9f7 100644 --- a/src/service.c +++ b/src/service.c -@@ -4776,6 +4776,108 @@ static DBusMessage *move_service(DBusConnection *conn, +@@ -4946,6 +4946,108 @@ static DBusMessage *move_service(DBusConnection *conn, return g_dbus_create_reply(msg, DBUS_TYPE_INVALID); } @@ -137,7 +137,7 @@ index 50e04d3..bf5c219 100644 static DBusMessage *move_before(DBusConnection *conn, DBusMessage *msg, void *user_data) { -@@ -4798,6 +4900,13 @@ static DBusMessage *reset_counters(DBusConnection *conn, +@@ -4968,6 +5070,13 @@ static DBusMessage *reset_counters(DBusConnection *conn, return g_dbus_create_reply(msg, DBUS_TYPE_INVALID); } @@ -151,7 +151,7 @@ index 50e04d3..bf5c219 100644 static void service_schedule_added(struct connman_service *service) { DBG("service %p", service); -@@ -4855,6 +4964,8 @@ static const GDBusMethodTable service_methods[] = { +@@ -5025,6 +5134,8 @@ static const GDBusMethodTable service_methods[] = { GDBUS_ARGS({ "service", "o" }), NULL, move_after) }, { GDBUS_METHOD("ResetCounters", NULL, NULL, reset_counters) }, @@ -160,6 +160,3 @@ index 50e04d3..bf5c219 100644 { }, }; --- -2.26.0 - diff --git a/meta-webos/recipes-connectivity/connman/connman/0018-Pick-gateway-from-gateway_hash-if-it-is-not-updated-.patch b/meta-webos/recipes-connectivity/connman/connman/0014-Pick-gateway-from-gateway_hash-if-it-is-not-updated-.patch similarity index 85% rename from meta-webos/recipes-connectivity/connman/connman/0018-Pick-gateway-from-gateway_hash-if-it-is-not-updated-.patch rename to meta-webos/recipes-connectivity/connman/connman/0014-Pick-gateway-from-gateway_hash-if-it-is-not-updated-.patch index 959ce7476..9e341bb8b 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0018-Pick-gateway-from-gateway_hash-if-it-is-not-updated-.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0014-Pick-gateway-from-gateway_hash-if-it-is-not-updated-.patch @@ -1,4 +1,4 @@ -From 0034ba7a5e774cc3ec335ecea73d4d03aabd67fb Mon Sep 17 00:00:00 2001 +From 0805a5d13a3ec891823d75c6f9c7c1295683fcbe Mon Sep 17 00:00:00 2001 From: Rakes Pani Date: Tue, 19 Jan 2021 17:53:14 +0530 Subject: [PATCH] Pick gateway from gateway_hash if it is not updated in ipv4 @@ -29,10 +29,10 @@ Upstream-Status: Inappropriate[webos specific] 5 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/connection.c b/src/connection.c -index 7a1fbce..e785f8a 100644 +index 303e9922..32e1c91b 100644 --- a/src/connection.c +++ b/src/connection.c -@@ -568,6 +568,20 @@ static struct gateway_data *find_default_gateway(void) +@@ -581,6 +581,20 @@ static struct gateway_data *find_default_gateway(void) return g_hash_table_lookup(gateway_hash, service); } @@ -54,10 +54,10 @@ index 7a1fbce..e785f8a 100644 struct gateway_data *candidate) { diff --git a/src/connman.h b/src/connman.h -index 3d26e59..336b26d 100644 +index 374b0def..5765c302 100644 --- a/src/connman.h +++ b/src/connman.h -@@ -391,7 +391,7 @@ const char *__connman_ipconfig_type2string(enum connman_ipconfig_type type); +@@ -390,7 +390,7 @@ const char *__connman_ipconfig_type2string(enum connman_ipconfig_type type); enum connman_ipconfig_method __connman_ipconfig_string2method(const char *method); void __connman_ipconfig_append_ipv4(struct connman_ipconfig *ipconfig, @@ -66,7 +66,7 @@ index 3d26e59..336b26d 100644 void __connman_ipconfig_append_ipv4config(struct connman_ipconfig *ipconfig, DBusMessageIter *iter); void __connman_ipconfig_append_ipv6(struct connman_ipconfig *ipconfig, -@@ -502,6 +502,8 @@ int __connman_connection_gateway_add(struct connman_service *service, +@@ -501,6 +501,8 @@ int __connman_connection_gateway_add(struct connman_service *service, const char *peer); void __connman_connection_gateway_remove(struct connman_service *service, enum connman_ipconfig_type type); @@ -76,10 +76,10 @@ index 3d26e59..336b26d 100644 bool __connman_connection_update_gateway(void); diff --git a/src/ipconfig.c b/src/ipconfig.c -index 2565773..104ae88 100644 +index 915c0823..8a1c7414 100644 --- a/src/ipconfig.c +++ b/src/ipconfig.c -@@ -1745,7 +1745,7 @@ int __connman_ipconfig_ipv6_set_privacy(struct connman_ipconfig *ipconfig, +@@ -1831,7 +1831,7 @@ int __connman_ipconfig_ipv6_set_privacy(struct connman_ipconfig *ipconfig, } void __connman_ipconfig_append_ipv4(struct connman_ipconfig *ipconfig, @@ -88,7 +88,7 @@ index 2565773..104ae88 100644 { struct connman_ipaddress *append_addr = NULL; const char *str; -@@ -1796,6 +1796,13 @@ void __connman_ipconfig_append_ipv4(struct connman_ipconfig *ipconfig, +@@ -1882,6 +1882,13 @@ void __connman_ipconfig_append_ipv4(struct connman_ipconfig *ipconfig, if (append_addr->gateway) connman_dbus_dict_append_basic(iter, "Gateway", DBUS_TYPE_STRING, &append_addr->gateway); @@ -103,18 +103,18 @@ index 2565773..104ae88 100644 void __connman_ipconfig_append_ipv6(struct connman_ipconfig *ipconfig, diff --git a/src/service.c b/src/service.c -index bf5c219..6e903de 100644 +index c463d9f7..a693d11f 100644 --- a/src/service.c +++ b/src/service.c -@@ -35,6 +35,7 @@ - #include - #include +@@ -37,6 +37,7 @@ + + #include "src/shared/util.h" + #include "connman.h" #define CONNECT_TIMEOUT 120 -@@ -1720,7 +1721,7 @@ static void append_ipv4(DBusMessageIter *iter, void *user_data) +@@ -1778,7 +1779,7 @@ static void append_ipv4(DBusMessageIter *iter, void *user_data) return; if (service->ipconfig_ipv4) @@ -124,7 +124,7 @@ index bf5c219..6e903de 100644 static void append_ipv6(DBusMessageIter *iter, void *user_data) diff --git a/src/session.c b/src/session.c -index 2a1dd9a..4814d39 100644 +index 2a1dd9aa..4814d391 100644 --- a/src/session.c +++ b/src/session.c @@ -836,7 +836,7 @@ static void append_ipconfig_ipv4(DBusMessageIter *iter, void *user_data) @@ -136,6 +136,3 @@ index 2a1dd9a..4814d39 100644 } static void append_ipconfig_ipv6(DBusMessageIter *iter, void *user_data) --- -2.26.0 - diff --git a/meta-webos/recipes-connectivity/connman/connman/0019-Add-CIDR-prefix-length-as-ipv4-property.patch b/meta-webos/recipes-connectivity/connman/connman/0015-Add-CIDR-prefix-length-as-ipv4-property.patch similarity index 85% rename from meta-webos/recipes-connectivity/connman/connman/0019-Add-CIDR-prefix-length-as-ipv4-property.patch rename to meta-webos/recipes-connectivity/connman/connman/0015-Add-CIDR-prefix-length-as-ipv4-property.patch index ae91fe246..7d8aeae7d 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0019-Add-CIDR-prefix-length-as-ipv4-property.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0015-Add-CIDR-prefix-length-as-ipv4-property.patch @@ -1,4 +1,4 @@ -From f3b7327eccbd976588ec489c4fbd5e7a2ae831c0 Mon Sep 17 00:00:00 2001 +From b7d3742ea6992243f5093bedad90b2b52a0ca2c4 Mon Sep 17 00:00:00 2001 From: Rakes Pani Date: Fri, 22 Jan 2021 09:50:37 +0530 Subject: [PATCH] Add CIDR prefix length as ipv4 property @@ -25,10 +25,10 @@ Upstream-Status: Inappropriate[webos specific] 1 file changed, 4 insertions(+) diff --git a/src/ipconfig.c b/src/ipconfig.c -index 104ae88..7b3661e 100644 +index 8a1c7414..8458585e 100644 --- a/src/ipconfig.c +++ b/src/ipconfig.c -@@ -1786,6 +1786,10 @@ void __connman_ipconfig_append_ipv4(struct connman_ipconfig *ipconfig, +@@ -1872,6 +1872,10 @@ void __connman_ipconfig_append_ipv4(struct connman_ipconfig *ipconfig, connman_dbus_dict_append_basic(iter, "Address", DBUS_TYPE_STRING, &append_addr->local); @@ -39,6 +39,3 @@ index 104ae88..7b3661e 100644 addr = 0xffffffff << (32 - append_addr->prefixlen); netmask.s_addr = htonl(addr); mask = inet_ntoa(netmask); --- -2.26.0 - diff --git a/meta-webos/recipes-connectivity/connman/connman/0020-Add-p2p-changes.patch b/meta-webos/recipes-connectivity/connman/connman/0016-Add-p2p-changes.patch similarity index 99% rename from meta-webos/recipes-connectivity/connman/connman/0020-Add-p2p-changes.patch rename to meta-webos/recipes-connectivity/connman/connman/0016-Add-p2p-changes.patch index 9389e3cf9..49aafdedf 100644 --- a/meta-webos/recipes-connectivity/connman/connman/0020-Add-p2p-changes.patch +++ b/meta-webos/recipes-connectivity/connman/connman/0016-Add-p2p-changes.patch @@ -1,4 +1,4 @@ -From d208a5da68d8b4ccf2e93c0e37912f3f6f2b7d59 Mon Sep 17 00:00:00 2001 +From f2814b30bdca4ebcd4054a5b324ec5a2aea01538 Mon Sep 17 00:00:00 2001 From: "penikelapati.kumar" Date: Wed, 27 Jan 2021 17:23:22 +0530 Subject: [PATCH] Add p2p changes @@ -62,7 +62,7 @@ Upstream-Status: Inappropriate[webos specific] create mode 100644 src/sd.c diff --git a/Makefile.am b/Makefile.am -index 011ef24..83ac894 100644 +index 5971ca9b..a9ae37dd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -11,8 +11,8 @@ include_HEADERS = include/log.h include/plugin.h \ @@ -76,7 +76,7 @@ index 011ef24..83ac894 100644 nodist_include_HEADERS = include/version.h -@@ -129,9 +129,9 @@ src_connmand_SOURCES = $(gdhcp_sources) $(gweb_sources) $(stats_sources) \ +@@ -128,9 +128,9 @@ src_connmand_SOURCES = $(gdhcp_sources) $(gweb_sources) $(stats_sources) \ src/technology.c src/counter.c src/ntp.c \ src/session.c src/tethering.c src/wpad.c src/wispr.c \ src/6to4.c src/ippool.c src/bridge.c src/nat.c \ @@ -89,7 +89,7 @@ index 011ef24..83ac894 100644 if INTERNAL_DNS_BACKEND src_connmand_SOURCES += src/dnsproxy.c diff --git a/gsupplicant/dbus.c b/gsupplicant/dbus.c -index 2957979..c034737 100644 +index 2957979a..c0347374 100644 --- a/gsupplicant/dbus.c +++ b/gsupplicant/dbus.c @@ -66,12 +66,14 @@ struct property_call_data { @@ -232,7 +232,7 @@ index 2957979..c034737 100644 + return result; +} diff --git a/gsupplicant/dbus.h b/gsupplicant/dbus.h -index 3a90406..071d19f 100644 +index 3a904069..071d19f4 100644 --- a/gsupplicant/dbus.h +++ b/gsupplicant/dbus.h @@ -20,6 +20,7 @@ @@ -257,7 +257,7 @@ index 3a90406..071d19f 100644 + */ +bool dbus_message_get_args_from_array_of_sv(DBusMessageIter *iter, int first_arg_type, ...); diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h -index f3a8861..f13db37 100644 +index e034cade..c787d5a0 100644 --- a/gsupplicant/gsupplicant.h +++ b/gsupplicant/gsupplicant.h @@ -155,6 +155,7 @@ struct _GSupplicantSSID { @@ -597,7 +597,7 @@ index f3a8861..f13db37 100644 int g_supplicant_set_widi_ies(GSupplicantP2PServiceParams *p2p_service_params, GSupplicantInterfaceCallback callback, void *user_data); -@@ -300,12 +567,19 @@ bool g_supplicant_interface_has_p2p(GSupplicantInterface *interface); +@@ -303,12 +570,19 @@ bool g_supplicant_interface_has_p2p(GSupplicantInterface *interface); int g_supplicant_interface_set_p2p_device_config(GSupplicantInterface *interface, const char *device_name, const char *primary_dev_type); @@ -618,7 +618,7 @@ index f3a8861..f13db37 100644 unsigned int g_supplicant_interface_get_rssi(GSupplicantInterface *interface); unsigned int g_supplicant_interface_get_link_speed(GSupplicantInterface *interface); -@@ -316,6 +590,9 @@ unsigned int g_supplicant_interface_get_noise(GSupplicantInterface *interface); +@@ -319,6 +593,9 @@ unsigned int g_supplicant_interface_get_noise(GSupplicantInterface *interface); struct _GSupplicantNetwork; struct _GSupplicantGroup; @@ -628,7 +628,7 @@ index f3a8861..f13db37 100644 typedef struct _GSupplicantNetwork GSupplicantNetwork; typedef struct _GSupplicantGroup GSupplicantGroup; -@@ -347,12 +624,18 @@ dbus_uint16_t g_supplicant_bss_get_frequency(GSupplicantBss *bss); +@@ -350,12 +627,18 @@ dbus_uint16_t g_supplicant_bss_get_frequency(GSupplicantBss *bss); GSupplicantInterface *g_supplicant_peer_get_interface(GSupplicantPeer *peer); const char *g_supplicant_peer_get_path(GSupplicantPeer *peer); @@ -647,7 +647,7 @@ index f3a8861..f13db37 100644 bool g_supplicant_peer_is_wps_pbc(GSupplicantPeer *peer); bool g_supplicant_peer_is_wps_pin(GSupplicantPeer *peer); bool g_supplicant_peer_is_in_a_group(GSupplicantPeer *peer); -@@ -360,6 +643,31 @@ GSupplicantInterface *g_supplicant_peer_get_group_interface(GSupplicantPeer *pee +@@ -363,6 +646,31 @@ GSupplicantInterface *g_supplicant_peer_get_group_interface(GSupplicantPeer *pee bool g_supplicant_peer_is_client(GSupplicantPeer *peer); bool g_supplicant_peer_has_requested_connection(GSupplicantPeer *peer); @@ -679,7 +679,7 @@ index f3a8861..f13db37 100644 struct _GSupplicantCallbacks { void (*system_ready) (void); void (*system_killed) (void); -@@ -367,6 +675,7 @@ struct _GSupplicantCallbacks { +@@ -370,6 +678,7 @@ struct _GSupplicantCallbacks { void (*interface_state) (GSupplicantInterface *interface); void (*interface_removed) (GSupplicantInterface *interface); void (*p2p_support) (GSupplicantInterface *interface); @@ -687,7 +687,7 @@ index f3a8861..f13db37 100644 void (*scan_started) (GSupplicantInterface *interface); void (*scan_finished) (GSupplicantInterface *interface); void (*ap_create_fail) (GSupplicantInterface *interface); -@@ -385,13 +694,31 @@ struct _GSupplicantCallbacks { +@@ -388,13 +697,31 @@ struct _GSupplicantCallbacks { void (*peer_lost) (GSupplicantPeer *peer); void (*peer_changed) (GSupplicantPeer *peer, GSupplicantPeerState state); @@ -722,7 +722,7 @@ index f3a8861..f13db37 100644 typedef struct _GSupplicantCallbacks GSupplicantCallbacks; diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c -index 84dc2e1..da9f2a6 100644 +index 8c008319..6546ca93 100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -46,6 +46,9 @@ @@ -1273,7 +1273,7 @@ index 84dc2e1..da9f2a6 100644 g_free(peer); } -@@ -1178,6 +1585,19 @@ unsigned int g_supplicant_interface_get_noise(GSupplicantInterface *interface) +@@ -1196,6 +1603,19 @@ unsigned int g_supplicant_interface_get_noise(GSupplicantInterface *interface) return interface->noise; } @@ -1293,7 +1293,7 @@ index 84dc2e1..da9f2a6 100644 static void set_network_enabled(DBusMessageIter *iter, void *user_data) { dbus_bool_t enable = *(dbus_bool_t *)user_data; -@@ -1383,6 +1803,14 @@ const char *g_supplicant_peer_get_path(GSupplicantPeer *peer) +@@ -1401,6 +1821,14 @@ const char *g_supplicant_peer_get_path(GSupplicantPeer *peer) return peer->path; } @@ -1308,7 +1308,7 @@ index 84dc2e1..da9f2a6 100644 const char *g_supplicant_peer_get_identifier(GSupplicantPeer *peer) { if (!peer) -@@ -1407,6 +1835,14 @@ const void *g_supplicant_peer_get_iface_address(GSupplicantPeer *peer) +@@ -1425,6 +1853,14 @@ const void *g_supplicant_peer_get_iface_address(GSupplicantPeer *peer) return peer->iface_address; } @@ -1323,7 +1323,7 @@ index 84dc2e1..da9f2a6 100644 const char *g_supplicant_peer_get_name(GSupplicantPeer *peer) { if (!peer) -@@ -1425,26 +1861,50 @@ const unsigned char *g_supplicant_peer_get_widi_ies(GSupplicantPeer *peer, +@@ -1443,26 +1879,50 @@ const unsigned char *g_supplicant_peer_get_widi_ies(GSupplicantPeer *peer, return peer->widi_ies; } @@ -1386,7 +1386,7 @@ index 84dc2e1..da9f2a6 100644 } bool g_supplicant_peer_is_in_a_group(GSupplicantPeer *peer) -@@ -1497,6 +1957,57 @@ bool g_supplicant_peer_has_requested_connection(GSupplicantPeer *peer) +@@ -1515,6 +1975,57 @@ bool g_supplicant_peer_has_requested_connection(GSupplicantPeer *peer) return peer->connection_requested; } @@ -1444,7 +1444,7 @@ index 84dc2e1..da9f2a6 100644 static void merge_network(GSupplicantNetwork *network) { GString *str; -@@ -2157,17 +2668,23 @@ static void interface_bss_added_with_keys(DBusMessageIter *iter, +@@ -2175,17 +2686,23 @@ static void interface_bss_added_with_keys(DBusMessageIter *iter, void *user_data) { struct g_supplicant_bss *bss; @@ -1469,7 +1469,7 @@ index 84dc2e1..da9f2a6 100644 supplicant_dbus_property_foreach(iter, bss_property, bss); -@@ -2180,9 +2697,13 @@ static void interface_bss_added_without_keys(DBusMessageIter *iter, +@@ -2198,9 +2715,13 @@ static void interface_bss_added_without_keys(DBusMessageIter *iter, void *user_data) { struct g_supplicant_bss *bss; @@ -1483,7 +1483,7 @@ index 84dc2e1..da9f2a6 100644 bss = interface_bss_added(iter, user_data); if (!bss) return; -@@ -2597,6 +3118,12 @@ static GSupplicantInterface *interface_alloc(const char *path) +@@ -2615,6 +3136,12 @@ static GSupplicantInterface *interface_alloc(const char *path) interface->bss_mapping = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL); @@ -1496,7 +1496,7 @@ index 84dc2e1..da9f2a6 100644 g_hash_table_replace(interface_table, interface->path, interface); return interface; -@@ -2743,6 +3270,7 @@ static void signal_name_owner_changed(const char *path, DBusMessageIter *iter) +@@ -2761,6 +3288,7 @@ static void signal_name_owner_changed(const char *path, DBusMessageIter *iter) g_hash_table_remove_all(group_mapping); g_hash_table_remove_all(config_file_table); g_hash_table_remove_all(interface_table); @@ -1504,7 +1504,7 @@ index 84dc2e1..da9f2a6 100644 callback_system_killed(); } -@@ -3214,6 +3742,14 @@ struct peer_property_data { +@@ -3232,6 +3760,14 @@ struct peer_property_data { bool services_changed; }; @@ -1519,7 +1519,7 @@ index 84dc2e1..da9f2a6 100644 static void peer_groups_relation(DBusMessageIter *iter, void *user_data) { struct peer_property_data *data = user_data; -@@ -3240,12 +3776,73 @@ static void peer_groups_relation(DBusMessageIter *iter, void *user_data) +@@ -3258,12 +3794,73 @@ static void peer_groups_relation(DBusMessageIter *iter, void *user_data) } } @@ -1593,7 +1593,7 @@ index 84dc2e1..da9f2a6 100644 SUPPLICANT_DBG("key: %s", key); -@@ -3253,18 +3850,40 @@ static void peer_property(const char *key, DBusMessageIter *iter, +@@ -3271,18 +3868,40 @@ static void peer_property(const char *key, DBusMessageIter *iter, return; if (!key) { @@ -1635,7 +1635,7 @@ index 84dc2e1..da9f2a6 100644 dbus_free(data); } -@@ -3291,6 +3910,7 @@ static void peer_property(const char *key, DBusMessageIter *iter, +@@ -3309,6 +3928,7 @@ static void peer_property(const char *key, DBusMessageIter *iter, uint16_t wps_config; dbus_message_iter_get_basic(iter, &wps_config); @@ -1643,7 +1643,7 @@ index 84dc2e1..da9f2a6 100644 if (wps_config & G_SUPPLICANT_WPS_CONFIG_PBC) peer->wps_capabilities |= G_SUPPLICANT_WPS_PBC; -@@ -3306,6 +3926,47 @@ static void peer_property(const char *key, DBusMessageIter *iter, +@@ -3324,6 +3944,47 @@ static void peer_property(const char *key, DBusMessageIter *iter, g_slist_free_full(data->old_groups, g_free); data->groups_changed = true; } @@ -1691,7 +1691,7 @@ index 84dc2e1..da9f2a6 100644 } else if (g_strcmp0(key, "IEs") == 0) { DBusMessageIter array; unsigned char *ie; -@@ -3330,6 +3991,25 @@ static void peer_property(const char *key, DBusMessageIter *iter, +@@ -3348,6 +4009,25 @@ static void peer_property(const char *key, DBusMessageIter *iter, memcpy(peer->widi_ies, ie, ie_len); peer->widi_ies_length = ie_len; data->services_changed = true; @@ -1717,7 +1717,7 @@ index 84dc2e1..da9f2a6 100644 } } -@@ -3339,6 +4019,7 @@ static void signal_peer_found(const char *path, DBusMessageIter *iter) +@@ -3357,6 +4037,7 @@ static void signal_peer_found(const char *path, DBusMessageIter *iter) GSupplicantInterface *interface; const char *obj_path = NULL; GSupplicantPeer *peer; @@ -1725,7 +1725,7 @@ index 84dc2e1..da9f2a6 100644 SUPPLICANT_DBG(""); -@@ -3362,8 +4043,13 @@ static void signal_peer_found(const char *path, DBusMessageIter *iter) +@@ -3380,8 +4061,13 @@ static void signal_peer_found(const char *path, DBusMessageIter *iter) peer->path = g_strdup(obj_path); g_hash_table_insert(interface->peer_table, peer->path, peer); g_hash_table_replace(peer_mapping, peer->path, interface); @@ -1739,7 +1739,7 @@ index 84dc2e1..da9f2a6 100644 property_data->peer = peer; dbus_message_iter_next(iter); -@@ -3374,9 +4060,12 @@ static void signal_peer_found(const char *path, DBusMessageIter *iter) +@@ -3392,9 +4078,12 @@ static void signal_peer_found(const char *path, DBusMessageIter *iter) return; } @@ -1753,7 +1753,7 @@ index 84dc2e1..da9f2a6 100644 } static void signal_peer_lost(const char *path, DBusMessageIter *iter) -@@ -3384,6 +4073,7 @@ static void signal_peer_lost(const char *path, DBusMessageIter *iter) +@@ -3402,6 +4091,7 @@ static void signal_peer_lost(const char *path, DBusMessageIter *iter) GSupplicantInterface *interface; const char *obj_path = NULL; GSupplicantPeer *peer; @@ -1761,7 +1761,7 @@ index 84dc2e1..da9f2a6 100644 SUPPLICANT_DBG(""); -@@ -3399,6 +4089,21 @@ static void signal_peer_lost(const char *path, DBusMessageIter *iter) +@@ -3417,6 +4107,21 @@ static void signal_peer_lost(const char *path, DBusMessageIter *iter) if (!peer) return; @@ -1783,7 +1783,7 @@ index 84dc2e1..da9f2a6 100644 g_hash_table_remove(interface->peer_table, obj_path); } -@@ -3421,12 +4126,14 @@ static void signal_peer_changed(const char *path, DBusMessageIter *iter) +@@ -3439,12 +4144,14 @@ static void signal_peer_changed(const char *path, DBusMessageIter *iter) } property_data = dbus_malloc0(sizeof(struct peer_property_data)); @@ -1800,7 +1800,7 @@ index 84dc2e1..da9f2a6 100644 if (property_data->groups_changed) callback_peer_changed(peer, G_SUPPLICANT_PEER_GROUP_CHANGED); -@@ -3437,18 +4144,45 @@ static void signal_peer_changed(const char *path, DBusMessageIter *iter) +@@ -3455,18 +4162,45 @@ static void signal_peer_changed(const char *path, DBusMessageIter *iter) peer->connection_requested = false; } @@ -1846,7 +1846,7 @@ index 84dc2e1..da9f2a6 100644 if (!key) return; -@@ -3463,7 +4197,7 @@ static void group_sig_property(const char *key, DBusMessageIter *iter, +@@ -3481,7 +4215,7 @@ static void group_sig_property(const char *key, DBusMessageIter *iter, if (len == ETH_ALEN) memcpy(data->iface_address, dev_addr, len); @@ -1855,7 +1855,7 @@ index 84dc2e1..da9f2a6 100644 const char *str = NULL; dbus_message_iter_get_basic(iter, &str); -@@ -3477,7 +4211,49 @@ static void group_sig_property(const char *key, DBusMessageIter *iter, +@@ -3495,7 +4229,49 @@ static void group_sig_property(const char *key, DBusMessageIter *iter, dbus_message_iter_get_basic(iter, &data->interface_obj_path); else if (g_strcmp0(key, "group_object") == 0) dbus_message_iter_get_basic(iter, &data->group_obj_path); @@ -1906,7 +1906,7 @@ index 84dc2e1..da9f2a6 100644 } static void signal_group_success(const char *path, DBusMessageIter *iter) -@@ -3524,16 +4300,137 @@ static void signal_group_failure(const char *path, DBusMessageIter *iter) +@@ -3542,16 +4318,137 @@ static void signal_group_failure(const char *path, DBusMessageIter *iter) if (!peer) return; @@ -2046,7 +2046,7 @@ index 84dc2e1..da9f2a6 100644 SUPPLICANT_DBG(""); -@@ -3545,11 +4442,13 @@ static void signal_group_started(const char *path, DBusMessageIter *iter) +@@ -3563,11 +4460,13 @@ static void signal_group_started(const char *path, DBusMessageIter *iter) if (!data.interface_obj_path || !data.group_obj_path) return; @@ -2065,7 +2065,7 @@ index 84dc2e1..da9f2a6 100644 g_interface = g_hash_table_lookup(interface_table, data.interface_obj_path); -@@ -3569,12 +4468,26 @@ static void signal_group_started(const char *path, DBusMessageIter *iter) +@@ -3587,12 +4486,26 @@ static void signal_group_started(const char *path, DBusMessageIter *iter) group->orig_interface = interface; group->path = g_strdup(data.group_obj_path); group->role = data.role; @@ -2094,7 +2094,7 @@ index 84dc2e1..da9f2a6 100644 } static void remove_peer_group_interface(GHashTable *group_table, -@@ -3602,6 +4515,40 @@ static void remove_peer_group_interface(GHashTable *group_table, +@@ -3620,6 +4533,40 @@ static void remove_peer_group_interface(GHashTable *group_table, } } @@ -2135,7 +2135,7 @@ index 84dc2e1..da9f2a6 100644 static void signal_group_finished(const char *path, DBusMessageIter *iter) { GSupplicantInterface *interface; -@@ -3622,6 +4569,9 @@ static void signal_group_finished(const char *path, DBusMessageIter *iter) +@@ -3640,6 +4587,9 @@ static void signal_group_finished(const char *path, DBusMessageIter *iter) g_hash_table_remove(group_mapping, data.group_obj_path); g_hash_table_remove(interface->group_table, data.group_obj_path); @@ -2145,7 +2145,7 @@ index 84dc2e1..da9f2a6 100644 } static void signal_group_request(const char *path, DBusMessageIter *iter) -@@ -3629,6 +4579,7 @@ static void signal_group_request(const char *path, DBusMessageIter *iter) +@@ -3647,6 +4597,7 @@ static void signal_group_request(const char *path, DBusMessageIter *iter) GSupplicantInterface *interface; GSupplicantPeer *peer; const char *obj_path; @@ -2153,7 +2153,7 @@ index 84dc2e1..da9f2a6 100644 SUPPLICANT_DBG(""); -@@ -3644,1692 +4595,4630 @@ static void signal_group_request(const char *path, DBusMessageIter *iter) +@@ -3662,1692 +4613,4630 @@ static void signal_group_request(const char *path, DBusMessageIter *iter) if (!peer) return; @@ -7990,7 +7990,7 @@ index 84dc2e1..da9f2a6 100644 } if (data->callback != NULL) -@@ -5338,18 +9227,19 @@ static void interface_wps_cancel_result(const char *error, +@@ -5356,18 +9245,19 @@ static void interface_wps_cancel_result(const char *error, dbus_free(data); } @@ -8017,7 +8017,7 @@ index 84dc2e1..da9f2a6 100644 data = dbus_malloc0(sizeof(*data)); if (data == NULL) -@@ -5358,327 +9248,388 @@ int g_supplicant_interface_wps_cancel(GSupplicantInterface *interface, +@@ -5376,327 +9266,388 @@ int g_supplicant_interface_wps_cancel(GSupplicantInterface *interface, data->interface = interface; data->callback = callback; data->user_data = user_data; @@ -8599,7 +8599,7 @@ index 84dc2e1..da9f2a6 100644 if (!interface->p2p_support) return -ENOTSUP; -@@ -5688,17 +9639,18 @@ int g_supplicant_interface_p2p_connect(GSupplicantInterface *interface, +@@ -5706,17 +9657,18 @@ int g_supplicant_interface_p2p_connect(GSupplicantInterface *interface, return -ENOMEM; data->interface = interface; @@ -8624,7 +8624,7 @@ index 84dc2e1..da9f2a6 100644 dbus_free(data); return ret; } -@@ -5706,144 +9658,160 @@ int g_supplicant_interface_p2p_connect(GSupplicantInterface *interface, +@@ -5724,144 +9676,160 @@ int g_supplicant_interface_p2p_connect(GSupplicantInterface *interface, return -EINPROGRESS; } @@ -8872,7 +8872,7 @@ index 84dc2e1..da9f2a6 100644 if (ret < 0) { dbus_free(data); return ret; -@@ -5852,28 +9820,33 @@ int g_supplicant_interface_p2p_add_service(GSupplicantInterface *interface, +@@ -5870,28 +9838,33 @@ int g_supplicant_interface_p2p_add_service(GSupplicantInterface *interface, return -EINPROGRESS; } @@ -8917,7 +8917,7 @@ index 84dc2e1..da9f2a6 100644 if (ret < 0) { dbus_free(data); return ret; -@@ -5882,42 +9855,147 @@ int g_supplicant_interface_p2p_del_service(GSupplicantInterface *interface, +@@ -5900,42 +9873,147 @@ int g_supplicant_interface_p2p_del_service(GSupplicantInterface *interface, return -EINPROGRESS; } @@ -9075,7 +9075,7 @@ index 84dc2e1..da9f2a6 100644 } static void widi_ies_params(DBusMessageIter *iter, void *user_data) -@@ -6047,6 +10125,12 @@ int g_supplicant_register(const GSupplicantCallbacks *callbacks) +@@ -6065,6 +10143,12 @@ int g_supplicant_register(const GSupplicantCallbacks *callbacks) NULL, NULL); config_file_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); @@ -9088,7 +9088,7 @@ index 84dc2e1..da9f2a6 100644 supplicant_dbus_setup(connection); -@@ -6150,6 +10234,15 @@ void g_supplicant_unregister(const GSupplicantCallbacks *callbacks) +@@ -6168,6 +10252,15 @@ void g_supplicant_unregister(const GSupplicantCallbacks *callbacks) connection = NULL; } @@ -9105,7 +9105,7 @@ index 84dc2e1..da9f2a6 100644 eap_methods = 0; } diff --git a/include/dbus.h b/include/dbus.h -index bcab418..13f8c70 100644 +index bcab4189..13f8c700 100644 --- a/include/dbus.h +++ b/include/dbus.h @@ -45,6 +45,9 @@ extern "C" { @@ -9119,7 +9119,7 @@ index bcab418..13f8c70 100644 #define CONNMAN_PRIVILEGE_MODIFY 1 #define CONNMAN_PRIVILEGE_SECRET 2 diff --git a/include/device.h b/include/device.h -index 082c1a3..3b65365 100644 +index 082c1a3d..3b65365b 100644 --- a/include/device.h +++ b/include/device.h @@ -153,6 +153,8 @@ struct connman_device_driver { @@ -9133,7 +9133,7 @@ index 082c1a3..3b65365 100644 diff --git a/include/group.h b/include/group.h new file mode 100644 -index 0000000..6d09284 +index 00000000..6d092843 --- /dev/null +++ b/include/group.h @@ -0,0 +1,74 @@ @@ -9212,7 +9212,7 @@ index 0000000..6d09284 + +#endif /* __CONNMAN_GROUP_H */ diff --git a/include/network.h b/include/network.h -index ad764e6..8b4f56d 100644 +index ad764e64..8b4f56db 100644 --- a/include/network.h +++ b/include/network.h @@ -30,6 +30,7 @@ @@ -9233,7 +9233,7 @@ index ad764e6..8b4f56d 100644 struct connman_device *connman_network_get_device(struct connman_network *network); diff --git a/include/peer.h b/include/peer.h -index 8066393..9a968f3 100644 +index 80663932..9a968f36 100644 --- a/include/peer.h +++ b/include/peer.h @@ -40,6 +40,9 @@ enum connman_peer_wps_method { @@ -9300,7 +9300,7 @@ index 8066393..9a968f3 100644 } diff --git a/include/sd.h b/include/sd.h new file mode 100644 -index 0000000..c8b6530 +index 00000000..c8b6530a --- /dev/null +++ b/include/sd.h @@ -0,0 +1,25 @@ @@ -9330,7 +9330,7 @@ index 0000000..c8b6530 + +#endif /* __CONNMAN_SD_H */ diff --git a/include/technology.h b/include/technology.h -index 8b4f159..445174d 100644 +index 8b4f159c..445174d0 100644 --- a/include/technology.h +++ b/include/technology.h @@ -23,6 +23,7 @@ @@ -9401,7 +9401,7 @@ index 8b4f159..445174d 100644 int connman_technology_driver_register(struct connman_technology_driver *driver); diff --git a/include/types.h b/include/types.h new file mode 100644 -index 0000000..0f671ec +index 00000000..0f671ec3 --- /dev/null +++ b/include/types.h @@ -0,0 +1,45 @@ @@ -9451,7 +9451,7 @@ index 0000000..0f671ec + +#endif /* __CONNMAN_TYPES_H */ diff --git a/plugins/wifi.c b/plugins/wifi.c -index 63c154e..0945a4a 100644 +index 429a50c4..22696291 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c @@ -33,6 +33,8 @@ @@ -9471,11 +9471,11 @@ index 63c154e..0945a4a 100644 + +#include "include/group.h" + + #include "src/shared/util.h" + #define CLEANUP_TIMEOUT 8 /* in seconds */ - #define INACTIVE_TIMEOUT 12 /* in seconds */ - #define FAVORITE_MAXIMUM_RETRIES 2 -@@ -67,15 +73,29 @@ - #define BGSCAN_DEFAULT "simple:30:-45:300" +@@ -69,15 +75,29 @@ + #define BGSCAN_DEFAULT "simple:30:-65:300" #define AUTOSCAN_EXPONENTIAL "exponential:3:300" #define AUTOSCAN_SINGLE "single:3" +#define P2P_PERSISTENT_INFO "P2PPersistentInfo" @@ -9507,7 +9507,7 @@ index 63c154e..0945a4a 100644 static struct connman_technology *wifi_technology = NULL; static struct connman_technology *p2p_technology = NULL; -@@ -155,12 +175,14 @@ struct wifi_data { +@@ -157,12 +177,14 @@ struct wifi_data { struct autoscan_params *autoscan; enum wifi_scanning_type scanning_type; GSupplicantScanParams *scan_params; @@ -9522,7 +9522,7 @@ index 63c154e..0945a4a 100644 int servicing; int disconnect_code; int assoc_code; -@@ -169,6 +191,12 @@ struct wifi_data { +@@ -171,6 +193,12 @@ struct wifi_data { GSupplicantSSID *wps_ssid; guint wps_timeout; bool wps_start_deferred; @@ -9535,7 +9535,7 @@ index 63c154e..0945a4a 100644 }; struct wifi_cb_data { -@@ -183,10 +211,23 @@ static GList *pending_wifi_device = NULL; +@@ -185,10 +213,23 @@ static GList *pending_wifi_device = NULL; static GList *p2p_iface_list = NULL; static bool wfd_service_registered = false; @@ -9559,7 +9559,7 @@ index 63c154e..0945a4a 100644 static void bss_foreach(gpointer key, gpointer value, gpointer user_data) { -@@ -221,3453 +262,5621 @@ static void p2p_tech_remove(struct connman_technology *technology) +@@ -223,3453 +264,5621 @@ static void p2p_tech_remove(struct connman_technology *technology) p2p_technology = NULL; } @@ -12170,7 +12170,7 @@ index 63c154e..0945a4a 100644 + g_supplicant_interface_set_data(wifi->interface, NULL); -struct last_connected { -- GTimeVal modified; +- struct timeval modified; - gchar *ssid; - int freq; -}; @@ -12178,8 +12178,8 @@ index 63c154e..0945a4a 100644 -static gint sort_entry(gconstpointer a, gconstpointer b, gpointer user_data) -{ -- GTimeVal *aval = (GTimeVal *)a; -- GTimeVal *bval = (GTimeVal *)b; +- struct timeval *aval = (struct timeval *)a; +- struct timeval *bval = (struct timeval *)b; + if (wifi->scan_params) + g_supplicant_free_scan_params(wifi->scan_params); @@ -12240,7 +12240,7 @@ index 63c154e..0945a4a 100644 - GSequence *latest_list; - struct last_connected *entry; - GKeyFile *keyfile; -- GTimeVal modified; +- struct timeval modified; - gchar **services; - gchar *str; - char *ssid; @@ -12313,7 +12313,7 @@ index 63c154e..0945a4a 100644 + g_free(ssid); + return 0; } -- g_time_val_from_iso8601(str, &modified); +- util_iso8601_to_timeval(str, &modified); - g_free(str); - ssid = g_key_file_get_string(keyfile, @@ -13427,7 +13427,7 @@ index 63c154e..0945a4a 100644 -static int network_probe(struct connman_network *network) +struct last_connected { -+ GTimeVal modified; ++ struct timeval modified; + gchar *ssid; + int freq; +}; @@ -13435,8 +13435,8 @@ index 63c154e..0945a4a 100644 +static gint sort_entry(gconstpointer a, gconstpointer b, gpointer user_data) { - DBG("network %p", network); -+ GTimeVal *aval = (GTimeVal *)a; -+ GTimeVal *bval = (GTimeVal *)b; ++ struct timeval *aval = (struct timeval *)a; ++ struct timeval *bval = (struct timeval *)b; + + /* Note that the sort order is descending */ + if (aval->tv_sec < bval->tv_sec) @@ -13479,7 +13479,7 @@ index 63c154e..0945a4a 100644 + GSequence *latest_list; + struct last_connected *entry; + GKeyFile *keyfile; -+ GTimeVal modified; ++ struct timeval modified; + gchar **services; + gchar *str; + char *ssid; @@ -13540,7 +13540,7 @@ index 63c154e..0945a4a 100644 + g_key_file_free(keyfile); + continue; + } -+ g_time_val_from_iso8601(str, &modified); ++ util_iso8601_to_timeval(str, &modified); + g_free(str); - if (result == -ENOKEY) { @@ -14570,7 +14570,7 @@ index 63c154e..0945a4a 100644 + return; + } + -+ if (wifi->network != wifi->pending_network) ++ if (wifi->network && wifi->network != wifi->pending_network) + connman_network_set_connected(wifi->network, false); + wifi->network = NULL; + @@ -15700,7 +15700,7 @@ index 63c154e..0945a4a 100644 return; - } - -- if (wifi->network != wifi->pending_network) +- if (wifi->network && wifi->network != wifi->pending_network) - connman_network_set_connected(wifi->network, false); - wifi->network = NULL; @@ -17624,7 +17624,7 @@ index 63c154e..0945a4a 100644 } static const GSupplicantCallbacks callbacks = { -@@ -3677,6 +5886,7 @@ static const GSupplicantCallbacks callbacks = { +@@ -3679,6 +5888,7 @@ static const GSupplicantCallbacks callbacks = { .interface_state = interface_state, .interface_removed = interface_removed, .p2p_support = p2p_support, @@ -17632,7 +17632,7 @@ index 63c154e..0945a4a 100644 .scan_started = scan_started, .scan_finished = scan_finished, .ap_create_fail = ap_create_fail, -@@ -3692,13 +5902,29 @@ static const GSupplicantCallbacks callbacks = { +@@ -3694,13 +5904,29 @@ static const GSupplicantCallbacks callbacks = { .peer_lost = peer_lost, .peer_changed = peer_changed, .peer_request = peer_request, @@ -17663,7 +17663,7 @@ index 63c154e..0945a4a 100644 static int tech_probe(struct connman_technology *technology) { wifi_technology = technology; -@@ -4003,6 +6229,21 @@ static int tech_set_regdom(struct connman_technology *technology, const char *al +@@ -4005,6 +6231,21 @@ static int tech_set_regdom(struct connman_technology *technology, const char *al return g_supplicant_set_country(alpha2, regdom_callback, NULL); } @@ -17685,7 +17685,7 @@ index 63c154e..0945a4a 100644 static struct connman_technology_driver tech_driver = { .name = "wifi", .type = CONNMAN_SERVICE_TYPE_WIFI, -@@ -4010,12 +6251,15 @@ static struct connman_technology_driver tech_driver = { +@@ -4012,12 +6253,15 @@ static struct connman_technology_driver tech_driver = { .remove = tech_remove, .set_tethering = tech_set_tethering, .set_regdom = tech_set_regdom, @@ -17701,7 +17701,7 @@ index 63c154e..0945a4a 100644 err = connman_network_driver_register(&network_driver); if (err < 0) return err; -@@ -4036,6 +6280,72 @@ static int wifi_init(void) +@@ -4038,6 +6282,72 @@ static int wifi_init(void) return 0; } @@ -17775,7 +17775,7 @@ index 63c154e..0945a4a 100644 { DBG(); diff --git a/src/connman.h b/src/connman.h -index 336b26d..2ca8432 100644 +index 5765c302..defd8f2a 100644 --- a/src/connman.h +++ b/src/connman.h @@ -279,6 +279,7 @@ void __connman_storage_save_provider(GKeyFile *keyfile, const char *identifier); @@ -17786,7 +17786,7 @@ index 336b26d..2ca8432 100644 int __connman_detect_init(void); void __connman_detect_cleanup(void); -@@ -464,6 +465,7 @@ typedef void (* dhcpv6_cb) (struct connman_network *network, +@@ -463,6 +464,7 @@ typedef void (* dhcpv6_cb) (struct connman_network *network, typedef void (* dhcp_cb) (struct connman_ipconfig *ipconfig, struct connman_network *opt_network, bool success, gpointer data); @@ -17794,7 +17794,7 @@ index 336b26d..2ca8432 100644 char *__connman_dhcp_get_server_address(struct connman_ipconfig *ipconfig); int __connman_dhcp_start(struct connman_ipconfig *ipconfig, struct connman_network *network, dhcp_cb callback, -@@ -557,6 +559,8 @@ void __connman_technology_remove_interface(enum connman_service_type type, +@@ -556,6 +558,8 @@ void __connman_technology_remove_interface(enum connman_service_type type, int index, const char *ident); void __connman_technology_notify_regdom_by_device(struct connman_device *device, int result, const char *alpha2); @@ -17803,7 +17803,7 @@ index 336b26d..2ca8432 100644 #include -@@ -571,6 +575,7 @@ int __connman_device_request_scan(enum connman_service_type type); +@@ -570,6 +574,7 @@ int __connman_device_request_scan(enum connman_service_type type); int __connman_device_request_scan_full(enum connman_service_type type); int __connman_device_request_start_wps(enum connman_service_type type, const char *pin); int __connman_device_request_cancel_wps(enum connman_service_type type); @@ -17811,7 +17811,7 @@ index 336b26d..2ca8432 100644 int __connman_device_request_hidden_scan(struct connman_device *device, const char *ssid, unsigned int ssid_len, const char *identity, const char *passphrase, -@@ -695,6 +700,7 @@ int __connman_service_compare(const struct connman_service *a, +@@ -694,6 +699,7 @@ int __connman_service_compare(const struct connman_service *a, const struct connman_service *b); struct connman_service *__connman_service_lookup_from_index(int index); @@ -17819,7 +17819,7 @@ index 336b26d..2ca8432 100644 struct connman_service *__connman_service_create_from_network(struct connman_network *network); struct connman_service *__connman_service_create_from_provider(struct connman_provider *provider); bool __connman_service_index_is_default(int index); -@@ -846,7 +852,9 @@ void __connman_peer_cleanup(void); +@@ -845,7 +851,9 @@ void __connman_peer_cleanup(void); void __connman_peer_list_struct(DBusMessageIter *array); const char *__connman_peer_get_path(struct connman_peer *peer); @@ -17830,7 +17830,7 @@ index 336b26d..2ca8432 100644 int __connman_peer_service_init(void); void __connman_peer_service_cleanup(void); -@@ -1000,6 +1008,15 @@ typedef void (*ippool_collision_cb_t) (struct connman_ippool *pool, +@@ -999,6 +1007,15 @@ typedef void (*ippool_collision_cb_t) (struct connman_ippool *pool, int __connman_ippool_init(void); void __connman_ippool_cleanup(void); @@ -17846,7 +17846,7 @@ index 336b26d..2ca8432 100644 void __connman_ippool_free(struct connman_ippool *pool); struct connman_ippool *__connman_ippool_create(int index, -@@ -1008,6 +1025,13 @@ struct connman_ippool *__connman_ippool_create(int index, +@@ -1007,6 +1024,13 @@ struct connman_ippool *__connman_ippool_create(int index, ippool_collision_cb_t collision_cb, void *user_data); @@ -17860,13 +17860,13 @@ index 336b26d..2ca8432 100644 const char *__connman_ippool_get_gateway(struct connman_ippool *pool); const char *__connman_ippool_get_broadcast(struct connman_ippool *pool); const char *__connman_ippool_get_subnet_mask(struct connman_ippool *pool); -@@ -1094,3 +1118,4 @@ int __connman_util_get_random(uint64_t *val); +@@ -1093,3 +1117,4 @@ int __connman_util_get_random(uint64_t *val); unsigned int __connman_util_random_delay_ms(unsigned int secs); int __connman_util_init(void); void __connman_util_cleanup(void); +char *__connman_util_insert_colon_to_mac_addr(const char *mac_addr); diff --git a/src/dbus.c b/src/dbus.c -index d80a46c..e0b69d4 100644 +index d80a46ce..e0b69d4c 100644 --- a/src/dbus.c +++ b/src/dbus.c @@ -182,6 +182,11 @@ void connman_dbus_property_append_array(DBusMessageIter *iter, @@ -17882,7 +17882,7 @@ index d80a46c..e0b69d4 100644 variant_sig = DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_STRING_AS_STRING; diff --git a/src/device.c b/src/device.c -index ce70da9..5c6d363 100644 +index ce70da90..5c6d3637 100644 --- a/src/device.c +++ b/src/device.c @@ -1060,6 +1060,9 @@ void connman_device_unregister(struct connman_device *device) @@ -17976,7 +17976,7 @@ index ce70da9..5c6d363 100644 connman_device_request_signal_info_cb cb, void *user_data) { diff --git a/src/dhcp.c b/src/dhcp.c -index 42e9f41..a1df828 100644 +index 42e9f417..a1df8289 100644 --- a/src/dhcp.c +++ b/src/dhcp.c @@ -659,6 +659,16 @@ static int dhcp_release(struct connman_dhcp *dhcp) @@ -17998,7 +17998,7 @@ index 42e9f41..a1df828 100644 { diff --git a/src/group.c b/src/group.c new file mode 100644 -index 0000000..83661cf +index 00000000..83661cf1 --- /dev/null +++ b/src/group.c @@ -0,0 +1,799 @@ @@ -18802,7 +18802,7 @@ index 0000000..83661cf + group_hash = NULL; +} diff --git a/src/ippool.c b/src/ippool.c -index f2e9b00..f3fd094 100644 +index f2e9b000..f3fd094e 100644 --- a/src/ippool.c +++ b/src/ippool.c @@ -42,6 +42,8 @@ struct address_info { @@ -18921,7 +18921,7 @@ index f2e9b00..f3fd094 100644 pool->collision_cb = collision_cb; pool->user_data = user_data; diff --git a/src/manager.c b/src/manager.c -index 2aacee3..0c42459 100644 +index 2aacee37..0c424598 100644 --- a/src/manager.c +++ b/src/manager.c @@ -30,6 +30,7 @@ @@ -19046,7 +19046,7 @@ index 2aacee3..0c42459 100644 }; diff --git a/src/network.c b/src/network.c -index 140d09b..d40f30e 100644 +index 161e84e0..a66cffa3 100644 --- a/src/network.c +++ b/src/network.c @@ -87,6 +87,7 @@ struct connman_network { @@ -19084,7 +19084,7 @@ index 140d09b..d40f30e 100644 struct connman_service *service; diff --git a/src/p2pgo.c b/src/p2pgo.c new file mode 100644 -index 0000000..e9d5f2d +index 00000000..e9d5f2d0 --- /dev/null +++ b/src/p2pgo.c @@ -0,0 +1,284 @@ @@ -19373,7 +19373,7 @@ index 0000000..e9d5f2d + DBG(""); +} diff --git a/src/peer.c b/src/peer.c -index 2102f11..83586cb 100644 +index 2102f119..83586cbc 100644 --- a/src/peer.c +++ b/src/peer.c @@ -33,12 +33,16 @@ @@ -20175,7 +20175,7 @@ index 2102f11..83586cb 100644 int __connman_peer_init(void) diff --git a/src/peer_service.c b/src/peer_service.c -index a457bff..c73863c 100644 +index a457bff7..c73863c8 100644 --- a/src/peer_service.c +++ b/src/peer_service.c @@ -228,6 +228,20 @@ static int register_peer_service(struct _peer_service *service) @@ -20218,7 +20218,7 @@ index a457bff..c73863c 100644 int __connman_peer_service_register(const char *owner, DBusMessage *msg, diff --git a/src/sd.c b/src/sd.c new file mode 100644 -index 0000000..9be1bde +index 00000000..9be1bde8 --- /dev/null +++ b/src/sd.c @@ -0,0 +1,382 @@ @@ -20605,10 +20605,10 @@ index 0000000..9be1bde + } +} diff --git a/src/service.c b/src/service.c -index 6e903de..aa9ccd9 100644 +index a693d11f..6bdfdc93 100644 --- a/src/service.c +++ b/src/service.c -@@ -7154,6 +7154,11 @@ struct connman_service *__connman_service_lookup_from_index(int index) +@@ -7280,6 +7280,11 @@ struct connman_service *__connman_service_lookup_from_index(int index) return NULL; } @@ -20621,10 +20621,10 @@ index 6e903de..aa9ccd9 100644 { return service ? service->identifier : NULL; diff --git a/src/storage.c b/src/storage.c -index 5e877ef..2de5c7f 100644 +index 90f03ebc..7e6d6590 100644 --- a/src/storage.c +++ b/src/storage.c -@@ -285,6 +285,14 @@ int __connman_storage_save_service(GKeyFile *keyfile, const char *service_id) +@@ -263,6 +263,14 @@ int __connman_storage_save_service(GKeyFile *keyfile, const char *service_id) return ret; } @@ -20639,7 +20639,7 @@ index 5e877ef..2de5c7f 100644 static bool remove_file(const char *service_id, const char *file) { gchar *pathname; -@@ -295,7 +303,12 @@ static bool remove_file(const char *service_id, const char *file) +@@ -273,7 +281,12 @@ static bool remove_file(const char *service_id, const char *file) return false; if (!g_file_test(pathname, G_FILE_TEST_EXISTS)) { @@ -20653,7 +20653,7 @@ index 5e877ef..2de5c7f 100644 } else if (g_file_test(pathname, G_FILE_TEST_IS_REGULAR)) { unlink(pathname); ret = true; -@@ -474,3 +487,127 @@ gchar **__connman_storage_get_providers(void) +@@ -452,3 +465,127 @@ gchar **__connman_storage_get_providers(void) return providers; } @@ -20782,7 +20782,7 @@ index 5e877ef..2de5c7f 100644 + closedir(dir); +} diff --git a/src/technology.c b/src/technology.c -index 5bfc1c5..aab672c 100644 +index 5bfc1c5f..aab672c8 100644 --- a/src/technology.c +++ b/src/technology.c @@ -69,6 +69,16 @@ struct connman_technology { @@ -21767,7 +21767,7 @@ index 5bfc1c5..aab672c 100644 } diff --git a/src/util.c b/src/util.c -index 03b14cd..78a312c 100644 +index 03b14cdc..78a312ca 100644 --- a/src/util.c +++ b/src/util.c @@ -102,3 +102,108 @@ unsigned int __connman_util_random_delay_ms(unsigned int secs) @@ -21879,6 +21879,3 @@ index 03b14cd..78a312c 100644 + binmac[4] = char2_to_hex_value(mac_string+12); + binmac[5] = char2_to_hex_value(mac_string+15); +} --- -2.26.0 - diff --git a/meta-webos/recipes-connectivity/connman/connman/0017-Revert-storage-Remove-unused-__connman_storage_open_.patch b/meta-webos/recipes-connectivity/connman/connman/0017-Revert-storage-Remove-unused-__connman_storage_open_.patch new file mode 100644 index 000000000..783ae88f5 --- /dev/null +++ b/meta-webos/recipes-connectivity/connman/connman/0017-Revert-storage-Remove-unused-__connman_storage_open_.patch @@ -0,0 +1,59 @@ +From c5b210cfcd92713ae16cdb979a38090760db0676 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Wed, 10 Mar 2021 06:48:18 -0800 +Subject: [PATCH] Revert "storage: Remove unused + __connman_storage_open_service()" + +This reverts commit 6ca9222beb5445de9fc8a94d92e0a7b9ebce3724. + +"Add p2p changes" patch from LGE is still using this +--- + src/connman.h | 1 + + src/storage.c | 22 ++++++++++++++++++++++ + 2 files changed, 23 insertions(+) + +diff --git a/src/connman.h b/src/connman.h +index defd8f2a..cc006dec 100644 +--- a/src/connman.h ++++ b/src/connman.h +@@ -273,6 +273,7 @@ void __connman_storage_delete_global(void); + GKeyFile *__connman_storage_load_config(const char *ident); + GKeyFile *__connman_storage_load_provider_config(const char *ident); + ++GKeyFile *__connman_storage_open_service(const char *ident); + int __connman_storage_save_service(GKeyFile *keyfile, const char *ident); + GKeyFile *__connman_storage_load_provider(const char *identifier); + void __connman_storage_save_provider(GKeyFile *keyfile, const char *identifier); +diff --git a/src/storage.c b/src/storage.c +index 7e6d6590..2de5c7f8 100644 +--- a/src/storage.c ++++ b/src/storage.c +@@ -161,6 +161,28 @@ GKeyFile *__connman_storage_load_provider_config(const char *ident) + return keyfile; + } + ++GKeyFile *__connman_storage_open_service(const char *service_id) ++{ ++ gchar *pathname; ++ GKeyFile *keyfile = NULL; ++ ++ pathname = g_strdup_printf("%s/%s/%s", STORAGEDIR, service_id, SETTINGS); ++ if (!pathname) ++ return NULL; ++ ++ keyfile = storage_load(pathname); ++ if (keyfile) { ++ g_free(pathname); ++ return keyfile; ++ } ++ ++ g_free(pathname); ++ ++ keyfile = g_key_file_new(); ++ ++ return keyfile; ++} ++ + gchar **connman_storage_get_services(void) + { + struct dirent *d; diff --git a/meta-webos/recipes-connectivity/connman/connman/0018-Fix-crash-in-p2p-addservice-and-p2p-settethering.patch b/meta-webos/recipes-connectivity/connman/connman/0018-Fix-crash-in-p2p-addservice-and-p2p-settethering.patch new file mode 100644 index 000000000..b86da11b7 --- /dev/null +++ b/meta-webos/recipes-connectivity/connman/connman/0018-Fix-crash-in-p2p-addservice-and-p2p-settethering.patch @@ -0,0 +1,77 @@ +From 720cf6ccf77e579c6b55d422971290b5b18b366b Mon Sep 17 00:00:00 2001 +From: "penikelapati.kumar" +Date: Wed, 17 Feb 2021 14:12:35 +0530 +Subject: [PATCH] Fix crash in p2p/addservice and p2p/settethering + +:Release Notes: +FIx crash when p2p/addservice and p2p/settethering. + +:Detailed Notes: + +:Testing Performed: +Build successfully. +Ethrenet/wifi connection successfully. + +:QA Notes: +N/A + +:Issues Addressed: +[PLAT-137131] [webOS OSE]: Failed to enable tethering mode +--- + plugins/wifi.c | 2 +- + src/group.c | 5 ++--- + src/p2pgo.c | 2 ++ + 3 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/plugins/wifi.c b/plugins/wifi.c +index 22696291..44a2fe10 100644 +--- a/plugins/wifi.c ++++ b/plugins/wifi.c +@@ -1506,7 +1506,7 @@ static void register_peer_service_cb(int result, + + DBG(""); + +- if (reg_data->callback) ++ if (reg_data && reg_data->callback) + reg_data->callback(result, reg_data->user_data); + + g_free(reg_data); +diff --git a/src/group.c b/src/group.c +index 83661cf1..e55358b3 100644 +--- a/src/group.c ++++ b/src/group.c +@@ -85,11 +85,9 @@ static int set_tethering(struct connman_group *group, + &val); + + if (enabled == TRUE) { +- __connman_p2p_go_set_enabled(); + __connman_p2p_go_tethering_set_enabled(); + } else { + __connman_p2p_go_tethering_set_disabled(); +- __connman_p2p_go_set_disabled(); + } + + return 0; +@@ -554,7 +552,8 @@ static int group_register(struct connman_group *group) + group_methods, group_signals, + NULL, group, NULL); + +- __connman_p2p_set_dhcp_pool(NULL); ++ if (!group->autonomous) ++ __connman_p2p_set_dhcp_pool(NULL); + group_added_signal(group); + + return 0; +diff --git a/src/p2pgo.c b/src/p2pgo.c +index e9d5f2d0..5c0b7f79 100644 +--- a/src/p2pgo.c ++++ b/src/p2pgo.c +@@ -237,6 +237,8 @@ void __connman_p2p_go_tethering_set_enabled(void) + const char *subnet_mask; + const char *start_ip; + ++ if (!dhcp_ippool) ++ return; + subnet_mask = __connman_ippool_get_subnet_mask(dhcp_ippool); + start_ip = __connman_ippool_get_start_ip(dhcp_ippool); + diff --git a/meta-webos/recipes-connectivity/connman/connman_%.bbappend b/meta-webos/recipes-connectivity/connman/connman_%.bbappend index ad22564be..bdc686d90 100644 --- a/meta-webos/recipes-connectivity/connman/connman_%.bbappend +++ b/meta-webos/recipes-connectivity/connman/connman_%.bbappend @@ -2,7 +2,7 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" -EXTENDPRAUTO_append = "webos13" +EXTENDPRAUTO_append = "webos14" SYSTEMD_SERVICE_${PN}_remove = "connman.service" SRC_URI += " \ @@ -15,13 +15,15 @@ SRC_URI += " \ file://0007-Provide-station-information-when-AP-mode.patch \ file://0008-Fix-compile-error-regarding-connman_tethering_get_st.patch \ file://0009-Fix-the-wifi-connection-failure.patch \ - file://0014-Implementing-the-configuration-options-related-to-P2.patch \ - file://0015-Read-WpaSupplicantConfigFile-from-main-configuration.patch \ - file://0016-Send-properties-changed-signal-in-case-of-interface-.patch \ - file://0017-Added-new-method-SetDefault-for-Interface-net.connma.patch \ - file://0018-Pick-gateway-from-gateway_hash-if-it-is-not-updated-.patch \ - file://0019-Add-CIDR-prefix-length-as-ipv4-property.patch \ - file://0020-Add-p2p-changes.patch \ + file://0010-Implementing-the-configuration-options-related-to-P2.patch \ + file://0011-Read-WpaSupplicantConfigFile-from-main-configuration.patch \ + file://0012-Send-properties-changed-signal-in-case-of-interface-.patch \ + file://0013-Added-new-method-SetDefault-for-Interface-net.connma.patch \ + file://0014-Pick-gateway-from-gateway_hash-if-it-is-not-updated-.patch \ + file://0015-Add-CIDR-prefix-length-as-ipv4-property.patch \ + file://0016-Add-p2p-changes.patch \ + file://0017-Revert-storage-Remove-unused-__connman_storage_open_.patch \ + file://0018-Fix-crash-in-p2p-addservice-and-p2p-settethering.patch \ " do_install_append() {