Add GDBus method handler for GetArpPacketInterval 89/200289/2
authorYu <jiung.yu@samsung.com>
Thu, 21 Feb 2019 06:37:23 +0000 (15:37 +0900)
committerYu <jiung.yu@samsung.com>
Mon, 25 Feb 2019 04:32:59 +0000 (13:32 +0900)
Change-Id: I4ce0ee15d196e2309560a005187beca2165b2eda
Signed-off-by: Yu Jiung <jiung.yu@samsung.com>
include/inm-arping.h
include/inm-manager.h
packaging/dbus-inm-manager.conf
src/inm-arping.c
src/inm-gdbus.c
src/inm-manager.c

index eb029adade0fb4f9f542945ca5714058276f958c..49a346e730e90ddb29f67baf496999fc4d856f15 100644 (file)
@@ -50,6 +50,7 @@ typedef void (*arping_callback) (gboolean found,
                gpointer user_data);
 
 int inm_arping_set_packet_interval(int interval);
+int inm_arping_get_packet_interval(int *interval);
 int inm_arping_start(gchar *if_name, gchar *target_ip, gint timeout, gboolean is_gateway);
 int inm_arping_stop(gchar *if_name, gchar *target_ip);
 
index a2869bc94a66b2af66b8d4fa0e9c5107234819cd..ae2410d6d35ad05650c7cbee0dce226ae1d7148b 100644 (file)
@@ -96,6 +96,7 @@ int inm_manager_get_wifi_state(int *state);
 int inm_manager_get_ethernet_state(int *state);
 
 int inm_manager_set_arp_packet_interval(int interval);
+int inm_manager_get_arp_packet_interval(int *interval);
 int inm_manager_start_arping(char *target_ip, int timeout);
 int inm_manager_stop_arping(char *target_ip);
 int inm_manager_start_check_gateway();
index 04d713eaa9d108c6e843eaf774337bdf530ce797..699f3f8f14327ac364c6c6927b024a20f9ff9bfa 100644 (file)
@@ -29,6 +29,7 @@
                <check send_destination="net.inm_manager" send_interface="net.inm_manager" send_member="GetRetryTxRate" privilege="http://tizen.org/privilege/network.get" />
                <check send_destination="net.inm_manager" send_interface="net.inm_manager" send_member="GetChannelInterference" privilege="http://tizen.org/privilege/network.get" />
                <check send_destination="net.inm_manager" send_interface="net.inm_manager" send_member="SetArpPacketInterval" privilege="http://tizen.org/privilege/network.get" />
+               <check send_destination="net.inm_manager" send_interface="net.inm_manager" send_member="GetArpPacketInterval" privilege="http://tizen.org/privilege/network.get" />
                <check send_destination="net.inm_manager" send_interface="net.inm_manager" send_member="GetWifiState" privilege="http://tizen.org/privilege/network.get" />
                <check send_destination="net.inm_manager" send_interface="net.inm_manager" send_member="GetEthernetState" privilege="http://tizen.org/privilege/network.get" />
                <check send_destination="net.inm_manager" send_interface="net.inm_manager" send_member="GetCurrentConnection" privilege="http://tizen.org/privilege/network.get" />
index 01c8aee96cf824cc48a4ae929bb3a42d4ae8e5d1..0118b45b7e81955cc0422d7310a9a6ec6c71b93e 100644 (file)
@@ -290,6 +290,18 @@ int inm_arping_set_packet_interval(int interval)
        return INM_ARPING_ERROR_NONE;
 }
 
+int inm_arping_get_packet_interval(int *interval)
+{
+       if (!g_p_arping_mon) {
+               __INM_FUNC_EXIT__;
+               return INM_ARPING_ERROR_NOT_INITIALIZED;
+       }
+
+       *interval = (int)((g_p_arping_mon->arping_interval) / MSEC);
+
+       return INM_ARPING_ERROR_NONE;
+}
+
 int inm_arping_start(gchar *if_name, gchar *target_ip, gint timeout, gboolean is_gateway)
 {
        gint ret = INM_ARPING_ERROR_NONE;
index 2fe5f09c7169f8d6319724c0a68196e71fc55065..ab3c10f58ce2bcb00dbaccd5dc9f416f4c2600bc 100644 (file)
@@ -791,6 +791,27 @@ static inline void __handle_set_arp_packet_interval(GVariant *parameters,
        __INM_FUNC_EXIT__;
 }
 
+static inline void __handle_get_arp_packet_interval(GVariant *parameters,
+               GDBusMethodInvocation *invocation)
+{
+       int interval = 0;
+       int ret = 0;
+       GVariant *arg = NULL;
+
+       __INM_FUNC_ENTER__;
+       ret = inm_manager_get_arp_packet_interval(&interval);
+       if (ret < 0) {
+               INM_LOGW("Failed to get arp packet interval");
+               __dbus_return_err(INM_MANAGER_ERROR_OPERATION_FAILED, invocation);
+               __INM_FUNC_EXIT__;
+               return;
+       }
+
+       arg = g_variant_new("(i)", interval);
+       g_dbus_method_invocation_return_value(invocation, arg);
+       __INM_FUNC_EXIT__;
+}
+
 static inline void __handle_start_arping(GVariant *parameters,
                GDBusMethodInvocation *invocation)
 {
@@ -1025,6 +1046,8 @@ static void __daemon_method_call(GDBusConnection *connection,
                __handle_get_channel_interference(parameters, invocation);
        else if (g_strcmp0(method_name, "SetArpPacketInterval") == 0)
                __handle_set_arp_packet_interval(parameters, invocation);
+       else if (g_strcmp0(method_name, "GetArpPacketInterval") == 0)
+               __handle_get_arp_packet_interval(parameters, invocation);
        else if (g_strcmp0(method_name, "StartArping") == 0)
                __handle_start_arping(parameters, invocation);
        else if (g_strcmp0(method_name, "StopArping") == 0)
@@ -1426,6 +1449,9 @@ static void __init_daemon_introspection()
                        "<method name='SetArpPacketInterval'>"
                                "<arg type='i' name='arp_packet_interval' direction='in'/>"
                                "</method>"
+                       "<method name='GetArpPacketInterval'>"
+                               "<arg type='i' name='arp_packet_interval' direction='out'/>"
+                               "</method>"
                        "<method name='StartArping'>"
                                "<arg type='s' name='target_ip' direction='in'/>"
                                "<arg type='i' name='timeout' direction='in'/>"
index 5a46c31f3a01606baabbc4a57ea6058bdea34270..763aa001822ce1357ff829cbf78c8e46ef94fff2 100644 (file)
@@ -297,6 +297,23 @@ int inm_manager_set_arp_packet_interval(int interval)
        return ret;
 }
 
+int inm_manager_get_arp_packet_interval(int *interval)
+{
+       int ret = INM_MANAGER_ERROR_NONE;
+
+       __INM_FUNC_ENTER__;
+
+       ret = inm_arping_get_packet_interval(interval);
+       if (ret != 0) {
+               INM_LOGW("Failed to get ARPing packet interval");
+               __INM_FUNC_EXIT__;
+               return -1;
+       }
+
+       __INM_FUNC_EXIT__;
+       return 0;
+}
+
 int inm_manager_start_arping(char *target_ip, int timeout)
 {
        gchar *ifname;