summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaehyun Kim <jeik01.kim@samsung.com>2020-09-01 12:11:34 +0900
committerJaehyun Kim <jeik01.kim@samsung.com>2020-09-01 12:11:34 +0900
commitd580f4026c54cb070f6e2dabf03ed557c14e10e0 (patch)
tree746286c2d4fcb98bf8013b49f7ed5295a91b8932
parentc45eee86f5a3fb041df570f23b2b477c38af0cce (diff)
downloadconnman-d580f4026c54cb070f6e2dabf03ed557c14e10e0.tar.gz
connman-d580f4026c54cb070f6e2dabf03ed557c14e10e0.tar.bz2
connman-d580f4026c54cb070f6e2dabf03ed557c14e10e0.zip
Move GetInterfaces method to Manager interface
Change-Id: I4e9cd93717a04457f97bf13fc389075a3e5c0e54 Signed-off-by: Jaehyun Kim <jeik01.kim@samsung.com>
-rwxr-xr-xinclude/technology.h2
-rw-r--r--src/connman.conf2
-rwxr-xr-xsrc/manager.c29
-rw-r--r--src/technology.c72
4 files changed, 63 insertions, 42 deletions
diff --git a/include/technology.h b/include/technology.h
index b449c8d8..d06678e0 100755
--- a/include/technology.h
+++ b/include/technology.h
@@ -92,6 +92,8 @@ void connman_technology_driver_unregister(struct connman_technology_driver *driv
#if defined TIZEN_EXT
const char *connman_techonology_get_path(enum connman_service_type type);
void __connman_technology_notify_scan_done(const char *ifname, int val);
+void __connman_technology_append_interfaces(DBusMessageIter *array,
+ enum connman_service_type type, const char *ifname);
#endif
#ifdef __cplusplus
diff --git a/src/connman.conf b/src/connman.conf
index 60e7e828..adff8fa4 100644
--- a/src/connman.conf
+++ b/src/connman.conf
@@ -37,7 +37,7 @@
<check send_destination="net.connman" send_interface="net.connman.Technology" send_member="ScanDevice" privilege="http://tizen.org/privilege/network.set" />
<check send_destination="net.connman" send_interface="net.connman.Technology" send_member="SetDevicePower" privilege="http://tizen.org/privilege/network.set" />
<check send_destination="net.connman" send_interface="net.connman.Technology" send_member="SetBSSID" privilege="http://tizen.org/privilege/network.set" />
- <check send_destination="net.connman" send_interface="net.connman.Technology" send_member="GetInterfaces" privilege="http://tizen.org/privilege/network.get" />
+ <check send_destination="net.connman" send_interface="net.connman.Manager" send_member="GetInterfaces" privilege="http://tizen.org/privilege/network.get" />
<check send_destination="net.connman" send_interface="net.connman.Technology" send_member="MeshCommands" privilege="http://tizen.org/privilege/network.set" />
</policy>
</busconfig>
diff --git a/src/manager.c b/src/manager.c
index 4b351e11..19f62c65 100755
--- a/src/manager.c
+++ b/src/manager.c
@@ -217,6 +217,32 @@ static DBusMessage *get_services(DBusConnection *conn,
}
#if defined TIZEN_EXT
+static DBusMessage *get_interfaces(DBusConnection *conn, DBusMessage *msg, void *data)
+{
+ DBusMessage *reply;
+ DBusMessageIter iter, array;
+ const char *default_interface = connman_option_get_string("DefaultWifiInterface");
+
+ DBG("DefaultWifiInterface %s", default_interface);
+
+ reply = dbus_message_new_method_return(msg);
+ if (!reply)
+ return NULL;
+
+ dbus_message_iter_init_append(reply, &iter);
+ dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY,
+ DBUS_TYPE_STRING_AS_STRING, &array);
+
+ dbus_message_iter_append_basic(&array,
+ DBUS_TYPE_STRING, &default_interface);
+
+ __connman_technology_append_interfaces(&array,
+ CONNMAN_SERVICE_TYPE_WIFI, default_interface);
+
+ dbus_message_iter_close_container(&iter, &array);
+ return reply;
+}
+
static DBusMessage *get_default_service(DBusConnection *conn,
DBusMessage *msg, void *data)
{
@@ -700,6 +726,9 @@ static const GDBusMethodTable manager_methods[] = {
NULL, GDBUS_ARGS({ "services", "a(oa{sv})" }),
get_services) },
#if defined TIZEN_EXT
+ { GDBUS_METHOD("GetInterfaces",
+ NULL, GDBUS_ARGS({ "interface_list", "as" }),
+ get_interfaces) },
{ GDBUS_METHOD("GetDefaultService",
NULL, GDBUS_ARGS({ "service", "oa{sv}" }),
get_default_service) },
diff --git a/src/technology.c b/src/technology.c
index b3586001..e9e4cd61 100644
--- a/src/technology.c
+++ b/src/technology.c
@@ -589,6 +589,37 @@ static void append_devices(DBusMessageIter *iter, void *user_data)
DBUS_TYPE_STRING, &str);
}
}
+
+void __connman_technology_append_interfaces(DBusMessageIter *array,
+ enum connman_service_type type, const char *ifname)
+{
+ GSList *list;
+ struct connman_technology *technology = NULL;
+
+ for (list = technology_list; list; list = list->next) {
+ struct connman_technology *local_tech = list->data;
+
+ if (local_tech->type != type)
+ continue;
+
+ technology = local_tech;
+ break;
+ }
+
+ if (!technology)
+ return;
+
+ for (list = technology->device_list; list; list = list->next) {
+ struct connman_device *device = list->data;
+ const char *str = connman_device_get_string(device, "Interface");
+
+ if (g_strcmp0(ifname, str) == 0)
+ continue;
+
+ dbus_message_iter_append_basic(array,
+ DBUS_TYPE_STRING, &str);
+ }
+}
#endif
static void append_properties(DBusMessageIter *iter,
@@ -1755,45 +1786,6 @@ static DBusMessage *get_max_scan_ssid(DBusConnection *conn, DBusMessage *msg, vo
return reply;
}
-static DBusMessage *get_interfaces(DBusConnection *conn, DBusMessage *msg, void *data)
-{
- DBusMessage *reply;
- DBusMessageIter iter, array;
- GSList *list;
- struct connman_technology *technology = data;
- const char *default_interface = connman_option_get_string("DefaultWifiInterface");
-
- DBG("technology %p", technology);
-
- reply = dbus_message_new_method_return(msg);
- if (!reply)
- return NULL;
-
- if (technology->type != CONNMAN_SERVICE_TYPE_WIFI)
- return NULL;
-
- dbus_message_iter_init_append(reply, &iter);
- dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY,
- DBUS_TYPE_STRING_AS_STRING, &array);
-
- dbus_message_iter_append_basic(&array,
- DBUS_TYPE_STRING, &default_interface);
-
- for (list = technology->device_list; list; list = list->next) {
- struct connman_device *device = list->data;
- const char *str = connman_device_get_string(device, "Interface");
-
- if (g_strcmp0(default_interface, str) == 0)
- continue;
-
- dbus_message_iter_append_basic(&array,
- DBUS_TYPE_STRING, &str);
- }
-
- dbus_message_iter_close_container(&iter, &array);
- return reply;
-}
-
static int technology_enable_device(struct connman_technology *technology,
bool enable_device, const char *ifname, struct connman_device **device_out)
{
@@ -2497,8 +2489,6 @@ static const GDBusMethodTable technology_methods[] = {
get_5ghz_supported) },
{ GDBUS_METHOD("GetMaxScanSsid", NULL, GDBUS_ARGS({ "maxscanssid", "a{sv}" }),
get_max_scan_ssid) },
- { GDBUS_METHOD("GetInterfaces", NULL, GDBUS_ARGS({ "interface_list", "as" }),
- get_interfaces) },
{ GDBUS_ASYNC_METHOD("SetDevicePower",
GDBUS_ARGS({ "ifname", "s" }, { "value", "b" }),
NULL, set_device_power) },