diff options
author | Chengyi Zhao <chengyi1.zhao@archermind.com> | 2013-07-11 09:12:01 +0800 |
---|---|---|
committer | Zhang zhengguang <zhengguang.zhang@intel.com> | 2013-07-18 23:18:17 +0800 |
commit | 8912e481bb4ced41895865cc75da553d71992680 (patch) | |
tree | 10f8455a58048f0145e4aa8c96d9346b78f05a52 /src/technology.c | |
parent | 073bd6bfec229bde625c6e00e9210f7265f7fd6a (diff) | |
download | connman-8912e481bb4ced41895865cc75da553d71992680.tar.gz connman-8912e481bb4ced41895865cc75da553d71992680.tar.bz2 connman-8912e481bb4ced41895865cc75da553d71992680.zip |
Tethering: Add open access point support in technology
Diffstat (limited to 'src/technology.c')
-rw-r--r-- | src/technology.c | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/src/technology.c b/src/technology.c index 0293094c..faf5ae02 100644 --- a/src/technology.c +++ b/src/technology.c @@ -328,8 +328,7 @@ static int set_tethering(struct connman_technology *technology, if (bridge == NULL) return -EOPNOTSUPP; - if (technology->type == CONNMAN_SERVICE_TYPE_WIFI && - (ident == NULL || passphrase == NULL)) + if (technology->type == CONNMAN_SERVICE_TYPE_WIFI && ident == NULL) return -EINVAL; for (tech_drivers = technology->driver_list; tech_drivers != NULL; @@ -890,19 +889,23 @@ static DBusMessage *set_property(DBusConnection *conn, if (technology->type != CONNMAN_SERVICE_TYPE_WIFI) return __connman_error_not_supported(msg); - if (strlen(str) < 8 || strlen(str) > 63) - return __connman_error_passphrase_required(msg); - - if (g_strcmp0(technology->tethering_passphrase, str) != 0) { - g_free(technology->tethering_passphrase); - technology->tethering_passphrase = g_strdup(str); - technology_save(technology); - - connman_dbus_property_changed_basic(technology->path, - CONNMAN_TECHNOLOGY_INTERFACE, - "TetheringPassphrase", - DBUS_TYPE_STRING, - &technology->tethering_passphrase); + if (strlen(str) < 8 || strlen(str) > 63) { + if (g_str_equal(str, "")) + technology->tethering_passphrase = NULL; + else + return __connman_error_passphrase_required(msg); + } else { + if (g_strcmp0(technology->tethering_passphrase, str) != 0) { + g_free(technology->tethering_passphrase); + technology->tethering_passphrase = g_strdup(str); + technology_save(technology); + + connman_dbus_property_changed_basic(technology->path, + CONNMAN_TECHNOLOGY_INTERFACE, + "TetheringPassphrase", + DBUS_TYPE_STRING, + &technology->tethering_passphrase); + } } } else if (g_str_equal(name, "Powered") == TRUE) { connman_bool_t enable; |