[Wi-Fi tethering] Added routing rule for multicast 21/93221/1 accepted/tizen/common/20161102.121505 accepted/tizen/ivi/20161027.062929 accepted/tizen/ivi/20161102.072340 accepted/tizen/mobile/20161102.072240 accepted/tizen/tv/20161102.072250 accepted/tizen/wearable/20161102.072313 submit/tizen/20161101.065543 submit/tizen_ivi/20161027.055622
authorSeonah Moon <seonah1.moon@samsung.com>
Fri, 21 Oct 2016 06:01:56 +0000 (15:01 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Fri, 21 Oct 2016 06:02:12 +0000 (15:02 +0900)
Change-Id: I54dfd9d828d3d181e235c87dc683e8eb1feea0f2
Signed-off-by: Seonah Moon <seonah1.moon@samsung.com>
CMakeLists.txt
include/mobileap_common.h
include/mobileap_softap.h
packaging/mobileap-agent.spec
src/mobileap_common.c
src/mobileap_wifi.c

index 8a75e46..9ef2c98 100755 (executable)
@@ -60,6 +60,10 @@ IF(TIZEN_FEATURE_WLAN_BOARD_SPRD)
        ADD_DEFINITIONS(-DTIZEN_FEATURE_WLAN_BOARD_SPRD)
 ENDIF(TIZEN_FEATURE_WLAN_BOARD_SPRD)
 
+IF(TIZEN_FEATURE_MULTICAST)
+       ADD_DEFINITIONS(-DTIZEN_FEATURE_MULTICAST)
+ENDIF(TIZEN_FEATURE_MULTICAST)
+
 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed -pie")
 
 ADD_CUSTOM_COMMAND(
index ca505df..21bab71 100755 (executable)
@@ -43,8 +43,12 @@ int _get_station_info(gconstpointer data, GCompareFunc func,
                mobile_ap_station_info_t **si);
 int _get_station_count(gconstpointer data, GCompareFunc func, int *count);
 GVariant *_station_info_foreach(void);
+
+#ifdef TIZEN_FEATURE_MULTICAST
 int _add_multicast_routing(const char *interface);
 int _del_multicast_routing(const char *interface);
+#endif
+
 int _add_interface_routing(const char *interface, const in_addr_t gateway);
 int _del_interface_routing(const char *interface, const in_addr_t gateway);
 int _add_routing_rule(const char *interface);
index 50b4aec..2c8f4bb 100755 (executable)
 #define TCP_DNS_FORWARD_RULE   "-i %s -p tcp --dport 53 -j DNAT --to %s:53"
 #define UDP_DNS_FORWARD_RULE   "-i %s -p udp --dport 53 -j DNAT --to %s:53"
 
+#ifdef TIZEN_FEATURE_MULTICAST
 #define ROUTE_CMD      "/usr/sbin/route"
 #define ROUTE_ADD      "add -net %s netmask %s %s"
 #define ROUTE_DEL      "del -net %s netmask %s %s"
 #define MULTICAST_ADDR "224.0.0.0"
 #define MULTICAST_NETMASK "224.0.0.0"
+#endif
 
 #define MOBILE_AP_STATE_NONE   0
 #define MOBILE_AP_STATE_WIFI   1
index 14ac161..e51fb9e 100644 (file)
@@ -1,6 +1,6 @@
 Name:          mobileap-agent
 Summary:       Mobile AP daemon for setting tethering environments
-Version:       1.0.77
+Version:       1.0.78
 Release:       1
 Group:         System/Network
 License:       Apache-2.0
@@ -48,6 +48,7 @@ export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
 
 %cmake -DCMAKE_BUILD_TYPE="" \
+       -DTIZEN_FEATURE_MULTICAST=1 \
 %if "%{?profile}" == "tv"
        -DTIZEN_PROFILE_TV=1 \
 %endif
index ad32c99..40a7a4e 100755 (executable)
@@ -345,6 +345,7 @@ GVariant * _station_info_foreach()
        return params;
 }
 
+#ifdef TIZEN_FEATURE_MULTICAST
 int _add_multicast_routing(const char *interface)
 {
        if (interface == NULL || interface[0] == '\0') {
@@ -380,6 +381,7 @@ int _del_multicast_routing(const char *interface)
 
        return MOBILE_AP_ERROR_NONE;
 }
+#endif
 
 int _add_interface_routing(const char *interface, const in_addr_t gateway)
 {
index 154a470..9152b73 100755 (executable)
@@ -566,6 +566,9 @@ mobile_ap_error_code_e _enable_wifi_tethering(Tethering *obj, gchar *ssid,
 
        _add_interface_routing(WIFI_IF, IP_ADDRESS_SOFTAP);
        _add_routing_rule(WIFI_IF);
+#ifdef TIZEN_FEATURE_MULTICAST
+       _add_multicast_routing(WIFI_IF);
+#endif
 
 DONE:
        _unblock_device_sleep();
@@ -661,6 +664,9 @@ mobile_ap_error_code_e _disable_wifi_tethering(Tethering *obj)
        }
 
        _block_device_sleep();
+#ifdef TIZEN_FEATURE_MULTICAST
+       _del_multicast_routing(WIFI_IF);
+#endif
        _del_routing_rule(WIFI_IF);
        _del_interface_routing(WIFI_IF, IP_ADDRESS_SOFTAP);
        _flush_ip_address(WIFI_IF);
@@ -804,8 +810,9 @@ mobile_ap_error_code_e _enable_soft_ap(Softap *obj,
        _start_timeout_cb(MOBILE_AP_TYPE_WIFI_AP, time(NULL) + WIFI_AP_CONN_TIMEOUT);
        _add_interface_routing(WIFI_IF, IP_ADDRESS_SOFTAP);
        _add_routing_rule(WIFI_IF);
-       if (is_softap)
-               _add_multicast_routing(WIFI_IF);
+#ifdef TIZEN_FEATURE_MULTICAST
+       _add_multicast_routing(WIFI_IF);
+#endif
 
 DONE:
        _unblock_device_sleep();
@@ -828,8 +835,9 @@ mobile_ap_error_code_e _disable_soft_ap(Softap *obj)
        }
 
        _block_device_sleep();
-       if (is_softap)
-               _del_multicast_routing(WIFI_IF);
+#ifdef TIZEN_FEATURE_MULTICAST
+       _del_multicast_routing(WIFI_IF);
+#endif
        _del_routing_rule(WIFI_IF);
        _del_interface_routing(WIFI_IF, IP_ADDRESS_SOFTAP);
        _flush_ip_address(WIFI_IF);