summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2011-12-10 12:25:58 +0200
committerMarcel Holtmann <marcel@holtmann.org>2011-12-10 12:25:58 +0200
commit87318d768c9bf6842ec4dc74f03220ee8b6a9c72 (patch)
tree6fb9488437ee943e3c59f38f232aa1bb14722f98 /src
parentb5a5656be5fafa9176c625b9ec207d9075815ba3 (diff)
downloadconnman-87318d768c9bf6842ec4dc74f03220ee8b6a9c72.tar.gz
connman-87318d768c9bf6842ec4dc74f03220ee8b6a9c72.tar.bz2
connman-87318d768c9bf6842ec4dc74f03220ee8b6a9c72.zip
manager: Remove support for ConnectService method
Diffstat (limited to 'src')
-rw-r--r--src/connman.h1
-rw-r--r--src/manager.c29
-rw-r--r--src/service.c232
3 files changed, 0 insertions, 262 deletions
diff --git a/src/connman.h b/src/connman.h
index ba9762f3..94e85aeb 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -488,7 +488,6 @@ int __connman_service_request_login(struct connman_service *service);
int __connman_service_connect(struct connman_service *service);
int __connman_service_disconnect(struct connman_service *service);
int __connman_service_disconnect_all(void);
-int __connman_service_create_and_connect(DBusMessage *msg);
int __connman_service_provision(DBusMessage *msg);
void __connman_service_auto_connect(void);
diff --git a/src/manager.c b/src/manager.c
index 9afcc3ea..78821c79 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -337,33 +337,6 @@ static DBusMessage *get_services(DBusConnection *conn,
return reply;
}
-static DBusMessage *connect_service(DBusConnection *conn,
- DBusMessage *msg, void *data)
-{
- int err;
-
- DBG("conn %p", conn);
-
- if (__connman_session_mode() == TRUE) {
- connman_info("Session mode enabled: "
- "direct service connect disabled");
-
- return __connman_error_failed(msg, -EINVAL);
- }
-
- err = __connman_service_create_and_connect(msg);
- if (err < 0) {
- if (err == -EINPROGRESS) {
- connman_error("Invalid return code from connect");
- err = -EINVAL;
- }
-
- return __connman_error_failed(msg, -err);
- }
-
- return NULL;
-}
-
static DBusMessage *provision_service(DBusConnection *conn, DBusMessage *msg,
void *data)
{
@@ -565,8 +538,6 @@ static GDBusMethodTable manager_methods[] = {
{ "DisableTechnology", "s", "", disable_technology,
G_DBUS_METHOD_FLAG_ASYNC },
{ "GetServices", "", "a(oa{sv})", get_services },
- { "ConnectService", "a{sv}", "o", connect_service,
- G_DBUS_METHOD_FLAG_ASYNC },
{ "ProvisionService", "s", "", provision_service,
G_DBUS_METHOD_FLAG_ASYNC },
{ "ConnectProvider", "a{sv}", "o", connect_provider,
diff --git a/src/service.c b/src/service.c
index 334a7f62..7390444a 100644
--- a/src/service.c
+++ b/src/service.c
@@ -1877,28 +1877,6 @@ static void stats_update(struct connman_service *service,
stats->data.time = stats->data_last.time + seconds;
}
-static char *wifi_build_group_name(const unsigned char *ssid,
- unsigned int ssid_len,
- const char *mode,
- const char *security)
-{
- GString *str;
- unsigned int i;
-
- /* the last 3 is for the 2 '_' and '\0' */
- str = g_string_sized_new((ssid_len * 2) + strlen(mode)
- + strlen(security) + 3);
- if (str == NULL)
- return NULL;
-
- for (i = 0; i < ssid_len; i++)
- g_string_append_printf(str, "%02x", ssid[i]);
-
- g_string_append_printf(str, "_%s_%s", mode, security);
-
- return g_string_free(str, FALSE);
-}
-
void __connman_service_notify(struct connman_service *service,
unsigned int rx_packets, unsigned int tx_packets,
unsigned int rx_bytes, unsigned int tx_bytes,
@@ -4782,216 +4760,6 @@ static struct connman_service *lookup_by_identifier(const char *identifier)
return NULL;
}
-static struct connman_network *create_hidden_wifi(struct connman_device *device,
- const char *ssid, const char *mode, const char *security,
- const char *group)
-{
- struct connman_network *network;
- char *name;
- int index;
- unsigned int i, ssid_len;
-
- ssid_len = strlen(ssid);
- if (ssid_len < 1)
- return NULL;
-
- network = connman_network_create(group, CONNMAN_NETWORK_TYPE_WIFI);
- if (network == NULL)
- return NULL;
-
- connman_network_set_blob(network, "WiFi.SSID",
- (unsigned char *) ssid, ssid_len);
-
- connman_network_set_string(network, "WiFi.Mode", mode);
- connman_network_set_string(network, "WiFi.Security", security);
-
- name = g_try_malloc0(ssid_len + 1);
- if (name == NULL) {
- connman_network_unref(network);
- return NULL;
- }
-
- for (i = 0; i < ssid_len; i++) {
- if (g_ascii_isprint(ssid[i]))
- name[i] = ssid[i];
- else
- name[i] = ' ';
- }
-
- connman_network_set_name(network, name);
-
- g_free(name);
-
- index = connman_device_get_index(device);
- connman_network_set_index(network, index);
-
- if (connman_device_add_network(device, network) < 0) {
- connman_network_unref(network);
- return NULL;
- }
-
- connman_network_set_available(network, TRUE);
-
- return network;
-}
-
-int __connman_service_create_and_connect(DBusMessage *msg)
-{
- struct connman_service *service;
- struct connman_network *network;
- struct connman_device *device;
- DBusMessageIter iter, array;
- const char *mode = "managed", *security = "none", *group_security;
- const char *type = NULL, *ssid = NULL, *passphrase = NULL;
- connman_bool_t network_created = FALSE;
- unsigned int ssid_len = 0;
- const char *ident;
- char *name, *group;
- int err;
-
- dbus_message_iter_init(msg, &iter);
- dbus_message_iter_recurse(&iter, &array);
-
- while (dbus_message_iter_get_arg_type(&array) == DBUS_TYPE_DICT_ENTRY) {
- DBusMessageIter entry, value;
- const char *key;
-
- dbus_message_iter_recurse(&array, &entry);
- dbus_message_iter_get_basic(&entry, &key);
-
- dbus_message_iter_next(&entry);
- dbus_message_iter_recurse(&entry, &value);
-
- switch (dbus_message_iter_get_arg_type(&value)) {
- case DBUS_TYPE_STRING:
- if (g_str_equal(key, "Type") == TRUE)
- dbus_message_iter_get_basic(&value, &type);
- else if (g_str_equal(key, "WiFi.Mode") == TRUE ||
- g_str_equal(key, "Mode") == TRUE)
- dbus_message_iter_get_basic(&value, &mode);
- else if (g_str_equal(key, "WiFi.Security") == TRUE ||
- g_str_equal(key, "Security") == TRUE)
- dbus_message_iter_get_basic(&value, &security);
- else if (g_str_equal(key, "WiFi.Passphrase") == TRUE ||
- g_str_equal(key, "Passphrase") == TRUE)
- dbus_message_iter_get_basic(&value, &passphrase);
- else if (g_str_equal(key, "WiFi.SSID") == TRUE ||
- g_str_equal(key, "SSID") == TRUE)
- dbus_message_iter_get_basic(&value, &ssid);
- }
-
- dbus_message_iter_next(&array);
- }
-
- if (type == NULL)
- return -EINVAL;
-
- if (g_strcmp0(type, "wifi") != 0 || g_strcmp0(mode, "managed") != 0)
- return -EOPNOTSUPP;
-
- if (ssid == NULL)
- return -EINVAL;
-
- ssid_len = strlen(ssid);
- if (ssid_len < 1)
- return -EINVAL;
-
- if (g_strcmp0(security, "none") != 0 &&
- g_strcmp0(security, "wep") != 0 &&
- g_strcmp0(security, "psk") != 0 &&
- g_strcmp0(security, "wpa") != 0 &&
- g_strcmp0(security, "rsn") != 0 &&
- g_strcmp0(security, "ieee8021x") != 0)
- return -EINVAL;
-
- device = __connman_device_find_device(CONNMAN_SERVICE_TYPE_WIFI);
- if (device == NULL)
- return -EOPNOTSUPP;
-
- ident = connman_device_get_ident(device);
- if (ident == NULL)
- return -EOPNOTSUPP;
-
-
- if (!g_strcmp0(security, "wpa") ||
- !g_strcmp0(security, "rsn"))
- group_security = "psk";
- else
- group_security = security;
-
- group = wifi_build_group_name((unsigned char *) ssid,
- ssid_len, mode, group_security);
- if (group == NULL)
- return -EINVAL;
-
- name = g_strdup_printf("%s_%s_%s", type, ident, group);
-
- service = lookup_by_identifier(name);
-
- if (service == NULL) {
- network = create_hidden_wifi(device, ssid,
- mode, security, group);
- if (network != NULL) {
- connman_network_set_group(network, group);
- network_created = TRUE;
- }
-
- service = lookup_by_identifier(name);
- }
-
- g_free(name);
- g_free(group);
-
- if (service == NULL) {
- err = -EOPNOTSUPP;
- goto failed;
- }
-
- service->network_created = network_created;
-
- if (is_connected(service) == TRUE) {
- err = -EISCONN;
- goto failed;
- }
-
- if (is_connecting(service) == TRUE) {
- err = -EALREADY;
- goto failed;
- }
-
- set_reconnect_state(service, FALSE);
-
- __connman_device_disconnect(device);
-
- if (passphrase != NULL) {
- g_free(service->passphrase);
- service->passphrase = g_strdup(passphrase);
- }
-
- service->userconnect = TRUE;
-
- err = __connman_service_connect(service);
- if (err < 0 && err != -EINPROGRESS)
- goto failed;
-
- service->pending = dbus_message_ref(msg);
-
- return 0;
-
-failed:
- if (service != NULL && service->network_created == TRUE) {
- struct connman_network *network = service->network;
-
- if (network != NULL) {
- connman_network_set_available(network, FALSE);
- __connman_device_cleanup_networks(device);
- } else
- __connman_service_put(service);
- }
-
- return err;
-}
-
static void provision_changed(gpointer value, gpointer user_data)
{
struct connman_service *service = value;