2 * Network Configuration - VPN Service Module
4 * Copyright (c) 2015 Samsung Electronics Co., Ltd. All rights reserved.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
23 #include <gio/gunixfdlist.h>
26 #include "mptcp-internal.h"
30 static Mptcp *mptcp_object = NULL;
32 Mptcp *get_mptcp_object(void)
37 /*********************
40 gboolean handle_mptcp_supported(Mptcp *object, GDBusMethodInvocation *invocation)
42 DBG("handle_mptcp_supported");
45 value = mptcp_supported();
47 mptcp_complete_is_supported(object, invocation, value);
51 gboolean handle_mptcp_set_enabled(Mptcp *object, GDBusMethodInvocation *invocation, gint enable)
53 DBG("handle_mptcp_set_enabled");
55 gboolean ret = mptcp_set_enabled(enable);
56 mptcp_complete_set_enabled(object, invocation, ret);
60 gboolean handle_mptcp_get_enabled(Mptcp *object, GDBusMethodInvocation *invocation)
62 DBG("handle_mptcp_get_enabled");
65 value = mptcp_get_enabled();
66 if (value != 0 && value != 1 && value != 2)
67 ERR("Invalid value of mptcp_enabled[%d]", value);
69 mptcp_complete_get_enabled(object, invocation, value);
73 gboolean handle_mptcp_set_path_manager(Mptcp *object, GDBusMethodInvocation *invocation, const gchar *pm)
75 DBG("handle_mptcp_set_path_manager %s", pm);
77 gboolean ret = mptcp_set_path_manager(pm);
78 mptcp_complete_set_path_manager(object, invocation, ret);
82 gboolean handle_mptcp_get_path_manager(Mptcp *object, GDBusMethodInvocation *invocation)
84 DBG("handle_mptcp_get_path_manager");
87 pm = mptcp_get_path_manager();
88 DBG("get path manager %s", pm ? pm : "null");
89 mptcp_complete_get_path_manager(object, invocation, pm);
95 gboolean handle_mptcp_set_scheduler(Mptcp *object, GDBusMethodInvocation *invocation, const gchar *scheduler)
97 DBG("handle_mptcp_set_scheduler");
99 gboolean ret = mptcp_mptcp_set_scheduler(scheduler);
100 mptcp_complete_set_scheduler(object, invocation, ret);
104 gboolean handle_mptcp_get_scheduler(Mptcp *object, GDBusMethodInvocation *invocation)
106 DBG("handle_mptcp_get_scheduler");
109 scheduler = mptcp_get_scheduler();
110 DBG("get scheduler %s", scheduler ? scheduler : "null");
111 mptcp_complete_get_scheduler(object, invocation, scheduler);
118 /*****************************
119 * Initializations Functions *
120 ****************************/
121 void mptcp_object_create_and_init(void)
123 DBG("Create mptcp object.");
124 GDBusInterfaceSkeleton *interface_mptcp = NULL;
125 GDBusConnection *connection = NULL;
126 GDBusObjectManagerServer *server = netdbus_get_mptcp_manager();
130 connection = netdbus_get_connection();
131 g_dbus_object_manager_server_set_connection(server, connection);
134 mptcp_object = mptcp_skeleton_new();
135 interface_mptcp = G_DBUS_INTERFACE_SKELETON(mptcp_object);
138 g_signal_connect(mptcp_object, "handle-is-supported",
139 G_CALLBACK(handle_mptcp_supported), NULL);
140 g_signal_connect(mptcp_object, "handle-set-enabled",
141 G_CALLBACK(handle_mptcp_set_enabled), NULL);
142 g_signal_connect(mptcp_object, "handle-get-enabled",
143 G_CALLBACK(handle_mptcp_get_enabled), NULL);
144 g_signal_connect(mptcp_object, "handle-set-path-manager",
145 G_CALLBACK(handle_mptcp_set_path_manager), NULL);
146 g_signal_connect(mptcp_object, "handle-get-path-manager",
147 G_CALLBACK(handle_mptcp_get_path_manager), NULL);
148 g_signal_connect(mptcp_object, "handle-set-scheduler",
149 G_CALLBACK(handle_mptcp_set_scheduler), NULL);
150 g_signal_connect(mptcp_object, "handle-get-scheduler",
151 G_CALLBACK(handle_mptcp_get_scheduler), NULL);
153 if (!g_dbus_interface_skeleton_export(interface_mptcp, connection,
154 NETCONFIG_MPTCP_PATH, NULL)) {
155 ERR("Export NETCONFIG_MPTCP_PATH for mptcp failed");
161 void mptcp_object_deinit(void)
163 DBG("Deinit mptcp object.");
165 g_object_unref(mptcp_object);