From 8a486d53f940942fcfb287cc6c38c9b216c265d0 Mon Sep 17 00:00:00 2001 From: Seonah Moon Date: Tue, 3 Dec 2019 19:32:48 +0900 Subject: [PATCH] Handle user defined IP address when update station info Change-Id: I37b13be0d1d6fa5abff9b7834e5d3472fec2819a --- include/mobileap_wifi.h | 2 ++ packaging/mobileap-agent.spec | 2 +- src/mobileap_common.c | 7 +++++++ src/mobileap_wifi.c | 9 +++++++++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/include/mobileap_wifi.h b/include/mobileap_wifi.h index be0a1ba..0104181 100644 --- a/include/mobileap_wifi.h +++ b/include/mobileap_wifi.h @@ -43,6 +43,8 @@ void _deinit_wifi_manager(void); int _get_wifi_name_from_lease_info(const char *mac, char **name_buf); +int _get_softap_ip_address(uint32_t *ip_addr); + /* Wi-Fi tethering */ mobile_ap_error_code_e _enable_wifi_tethering(Tethering *obj, softap_settings_t *settings); diff --git a/packaging/mobileap-agent.spec b/packaging/mobileap-agent.spec index c6f7bef..61f21aa 100644 --- a/packaging/mobileap-agent.spec +++ b/packaging/mobileap-agent.spec @@ -1,6 +1,6 @@ Name: mobileap-agent Summary: Mobile AP daemon for setting tethering environments -Version: 1.0.135 +Version: 1.0.136 Release: 1 Group: System/Network License: Apache-2.0 diff --git a/src/mobileap_common.c b/src/mobileap_common.c index 5d7b184..938c44b 100755 --- a/src/mobileap_common.c +++ b/src/mobileap_common.c @@ -607,6 +607,13 @@ int _get_tethering_type_from_ip(const char *ip, mobile_ap_type_e *type) is_init = TRUE; } + uint32_t ip_addr = 0; + if (_get_softap_ip_address(&ip_addr) == MOBILE_AP_ERROR_NONE) { + DBG("user defined IP address is exist"); + addr.s_addr = htonl(ip_addr); + subnet_wifi = inet_netof(addr); + } + if (subnet == subnet_wifi) { if (_mobileap_is_enabled(MOBILE_AP_STATE_WIFI)) *type = MOBILE_AP_TYPE_WIFI; diff --git a/src/mobileap_wifi.c b/src/mobileap_wifi.c index b846be6..9f25f27 100755 --- a/src/mobileap_wifi.c +++ b/src/mobileap_wifi.c @@ -83,6 +83,15 @@ softap_settings_t *_get_softap_settings() return &obj_softap_settings; } +int _get_softap_ip_address(uint32_t *ip_addr) +{ + if (obj_softap_settings.ip_addr) { + *ip_addr = obj_softap_settings.ip_addr; + return MOBILE_AP_ERROR_NONE; + } + return MOBILE_AP_ERROR_INVALID_PARAM; +} + static int _extract_softap_settings(GVariant *values, softap_settings_t *settings) { if (values == NULL || settings == NULL) -- 2.7.4