Tethering: Add open access point support in technology
authorChengyi Zhao <chengyi1.zhao@archermind.com>
Thu, 11 Jul 2013 01:12:01 +0000 (09:12 +0800)
committerZhang zhengguang <zhengguang.zhang@intel.com>
Fri, 31 Oct 2014 08:06:21 +0000 (16:06 +0800)
Change-Id: I86f4a22567f5df2fbd5d0c0c03c6cc5b6fc24a2d

src/technology.c

index a06efd3..be66c3a 100644 (file)
@@ -245,8 +245,7 @@ static int set_tethering(struct connman_technology *technology,
        if (!bridge)
                return -EOPNOTSUPP;
 
-       if (technology->type == CONNMAN_SERVICE_TYPE_WIFI &&
-           (!ident || !passphrase))
+       if (technology->type == CONNMAN_SERVICE_TYPE_WIFI && (!ident))
                return -EINVAL;
 
        for (tech_drivers = technology->driver_list; tech_drivers;
@@ -912,19 +911,30 @@ 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 (strlen(str) < 8 || strlen(str) > 63) {
+                       if (g_str_equal(str, "")) {
+                               technology->tethering_passphrase = NULL;
 
-               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,
+                                               &str);
+                       }
+                       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);
+                               connman_dbus_property_changed_basic(technology->path,
+                                               CONNMAN_TECHNOLOGY_INTERFACE,
+                                               "TetheringPassphrase",
+                                               DBUS_TYPE_STRING,
+                                               &technology->tethering_passphrase);
+                       }
                }
        } else if (g_str_equal(name, "Powered")) {
                dbus_bool_t enable;