diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/connman.service.in | 2 | ||||
-rw-r--r-- | src/connman_tv.service.in | 2 | ||||
-rwxr-xr-x | src/inet.c | 7 | ||||
-rwxr-xr-x | src/iptables.c | 4 | ||||
-rwxr-xr-x | src/net.connman.service.in | 2 | ||||
-rwxr-xr-x | src/network.c | 11 | ||||
-rwxr-xr-x | src/rtnl.c | 5 | ||||
-rwxr-xr-x | src/service.c | 23 | ||||
-rwxr-xr-x | src/wispr.c | 5 |
9 files changed, 51 insertions, 10 deletions
diff --git a/src/connman.service.in b/src/connman.service.in index adf7a62a..503ec455 100755 --- a/src/connman.service.in +++ b/src/connman.service.in @@ -9,6 +9,8 @@ BusName=net.connman Restart=on-failure ExecStart=@sbindir@/connmand -n --noplugin vpn StandardOutput=null +CapabilityBoundingSet=~CAP_MAC_ADMIN +CapabilityBoundingSet=~CAP_MAC_OVERRIDE [Install] WantedBy=multi-user.target diff --git a/src/connman_tv.service.in b/src/connman_tv.service.in index 2922aa86..c0328467 100644 --- a/src/connman_tv.service.in +++ b/src/connman_tv.service.in @@ -7,6 +7,8 @@ BusName=net.connman RemainAfterExit=yes ExecStartPre=/usr/bin/dbus-send --system --dest=net.netconfig / net.netconfig.auto.activate ExecStart=/usr/sbin/connmand --noplugin vpn +CapabilityBoundingSet=~CAP_MAC_ADMIN +CapabilityBoundingSet=~CAP_MAC_OVERRIDE [Install] WantedBy=multi-user.target @@ -2706,7 +2706,14 @@ char **__connman_inet_get_running_interfaces(void) g_free(ifr); if (count < numif) + { + char **prev_result = result; result = g_try_realloc(result, (count + 1) * sizeof(char *)); + if (!result) { + g_free(prev_result); + goto error; + } + } return result; diff --git a/src/iptables.c b/src/iptables.c index dd1b2e63..c65f9efc 100755 --- a/src/iptables.c +++ b/src/iptables.c @@ -2311,6 +2311,10 @@ int __connman_iptables_commit(const char *table_name) return -EINVAL; repl = iptables_blob(table); +#if defined TIZEN_EXT + if(!repl) + return -ENOMEM; +#endif if (debug_enabled) dump_ipt_replace(repl); diff --git a/src/net.connman.service.in b/src/net.connman.service.in index f7f6a7c0..9679c1be 100755 --- a/src/net.connman.service.in +++ b/src/net.connman.service.in @@ -1,5 +1,5 @@ [D-BUS Service] Name=net.connman -Exec=@sbindir@/connmand -n +Exec=/bin/false User=root SystemdService=connman.service diff --git a/src/network.c b/src/network.c index ad677467..4b2ae113 100755 --- a/src/network.c +++ b/src/network.c @@ -1311,15 +1311,8 @@ static gboolean __connman_network_clear_associating_delayed(gpointer user_data) if (network->associating == FALSE && state_ipv4 == CONNMAN_SERVICE_STATE_ASSOCIATION && - state_ipv6 == CONNMAN_SERVICE_STATE_ASSOCIATION) { - __connman_service_ipconfig_indicate_state(service, - CONNMAN_SERVICE_STATE_IDLE, - CONNMAN_IPCONFIG_TYPE_IPV4); - - __connman_service_ipconfig_indicate_state(service, - CONNMAN_SERVICE_STATE_IDLE, - CONNMAN_IPCONFIG_TYPE_IPV6); - } + state_ipv6 == CONNMAN_SERVICE_STATE_ASSOCIATION) + connman_network_clear_associating(network); return FALSE; } @@ -100,6 +100,7 @@ static bool ether_blacklisted(const char *name) return false; } +#if !defined TIZEN_EXT static bool wext_interface(char *ifname) { struct iwreq wrq; @@ -121,6 +122,7 @@ static bool wext_interface(char *ifname) return true; } +#endif #if defined TIZEN_EXT static bool __connman_rtnl_is_cellular_device(const char *name) @@ -222,6 +224,8 @@ static void read_uevent(struct interface_data *interface) if (found_devtype) goto out; +#if !defined TIZEN_EXT + /* TIZEN does not use old wext interface */ /* We haven't got a DEVTYPE, let's check if it's a wireless device */ if (wext_interface(name)) { interface->service_type = CONNMAN_SERVICE_TYPE_WIFI; @@ -229,6 +233,7 @@ static void read_uevent(struct interface_data *interface) connman_error("%s runs an unsupported 802.11 driver", name); } +#endif out: g_free(name); diff --git a/src/service.c b/src/service.c index 9f197dd2..ca291199 100755 --- a/src/service.c +++ b/src/service.c @@ -1896,8 +1896,10 @@ static void state_changed(struct connman_service *service) if (!str) return; +#if !defined TIZEN_EXT if (!allow_property_changed(service)) return; +#endif connman_dbus_property_changed_basic(service->path, CONNMAN_SERVICE_INTERFACE, "State", @@ -2716,11 +2718,13 @@ static void append_wifi_ext_info(DBusMessageIter *dict, unsigned int maxrate; uint16_t frequency; const char *enc_mode; + gboolean passpoint; bssid = connman_network_get_bssid(network); maxrate = connman_network_get_maxrate(network); frequency = connman_network_get_frequency(network); enc_mode = connman_network_get_enc_mode(network); + passpoint = connman_network_get_is_hs20AP(network); snprintf(bssid_str, WIFI_BSSID_STR_LEN, "%02x:%02x:%02x:%02x:%02x:%02x", bssid[0], bssid[1], bssid[2], @@ -2734,6 +2738,8 @@ static void append_wifi_ext_info(DBusMessageIter *dict, DBUS_TYPE_UINT16, &frequency); connman_dbus_dict_append_basic(dict, "EncryptionMode", DBUS_TYPE_STRING, &enc_mode); + connman_dbus_dict_append_basic(dict, "Passpoint", + DBUS_TYPE_BOOLEAN, &passpoint); } #endif @@ -5144,6 +5150,10 @@ static void service_schedule_removed(struct connman_service *service) static bool allow_property_changed(struct connman_service *service) { +#if defined TIZEN_EXT + if (service->path == NULL) + return FALSE; +#endif if (g_hash_table_lookup_extended(services_notify->add, service->path, NULL, NULL)) { DBG("no property updates for service %p", service); @@ -6846,6 +6856,19 @@ int __connman_service_ipconfig_indicate_state(struct connman_service *service, is_connected_state(service, new_state)) nameserver_add_all(service); +#if defined TIZEN_EXT + int ret = service_indicate_state(service); + /*Sent the Ready changed signal again in case IPv4 IP set + after IPv6 IP set*/ + + if(ret == -EALREADY && type == CONNMAN_IPCONFIG_TYPE_IPV4 + && new_state == CONNMAN_SERVICE_STATE_READY) { + DBG("Notify IPv4 state new/old %d/%d", new_state,old_state); + state_changed(service); + } + + return ret; +#endif return service_indicate_state(service); } diff --git a/src/wispr.c b/src/wispr.c index ef4bdaba..330aa1d4 100755 --- a/src/wispr.c +++ b/src/wispr.c @@ -926,6 +926,11 @@ int __connman_wispr_start(struct connman_service *service, DBG("service %p", service); +#if defined TIZEN_EXT + if (connman_service_get_type(service) == CONNMAN_SERVICE_TYPE_CELLULAR) + return -EPERM; +#endif + if (!wispr_portal_list) return -EINVAL; |