diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2011-12-10 12:25:58 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2011-12-10 12:25:58 +0200 |
commit | 87318d768c9bf6842ec4dc74f03220ee8b6a9c72 (patch) | |
tree | 6fb9488437ee943e3c59f38f232aa1bb14722f98 /src | |
parent | b5a5656be5fafa9176c625b9ec207d9075815ba3 (diff) | |
download | connman-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.h | 1 | ||||
-rw-r--r-- | src/manager.c | 29 | ||||
-rw-r--r-- | src/service.c | 232 |
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; |