summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-03-12 14:49:14 +0100
committerMarcel Holtmann <marcel@holtmann.org>2008-03-12 14:49:14 +0100
commitc1fdd4bf06398f2b277bd5d8e5a11cadba6508b8 (patch)
treec1b2432f30e62293f6fcdfcc3d259135e89741b2 /src
parentc1925f58614237c3ecd8adce5c0b3f7d82b847cf (diff)
downloadconnman-c1fdd4bf06398f2b277bd5d8e5a11cadba6508b8.tar.gz
connman-c1fdd4bf06398f2b277bd5d8e5a11cadba6508b8.tar.bz2
connman-c1fdd4bf06398f2b277bd5d8e5a11cadba6508b8.zip
Change variables inside the network structure
Diffstat (limited to 'src')
-rw-r--r--src/iface-storage.c26
-rw-r--r--src/iface.c61
2 files changed, 41 insertions, 46 deletions
diff --git a/src/iface-storage.c b/src/iface-storage.c
index 750aa43e..a5b57a38 100644
--- a/src/iface-storage.c
+++ b/src/iface-storage.c
@@ -63,18 +63,14 @@ int __connman_iface_load(struct connman_iface *iface)
str = g_key_file_get_string(keyfile, GROUP_CONFIG, "Network", NULL);
if (str != NULL) {
- g_free(iface->network.essid);
- iface->network.essid = str;
- if (iface->driver->set_network)
- iface->driver->set_network(iface, str);
+ g_free(iface->network.identifier);
+ iface->network.identifier = str;
- str = g_key_file_get_string(keyfile, iface->network.essid,
- "PSK", NULL);
+ str = g_key_file_get_string(keyfile,
+ iface->network.identifier, "PSK", NULL);
if (str != NULL) {
- g_free(iface->network.psk);
- iface->network.psk = str;
- if (iface->driver->set_passphrase)
- iface->driver->set_passphrase(iface, str);
+ g_free(iface->network.passphrase);
+ iface->network.passphrase = str;
}
}
@@ -95,15 +91,15 @@ static void do_update(GKeyFile *keyfile, struct connman_iface *iface)
str = __connman_iface_policy2string(iface->policy);
g_key_file_set_string(keyfile, GROUP_CONFIG, "Policy", str);
- if (iface->network.essid != NULL) {
+ if (iface->network.identifier != NULL) {
g_key_file_set_string(keyfile, GROUP_CONFIG,
- "Network", iface->network.essid);
+ "Network", iface->network.identifier);
} else
g_key_file_remove_key(keyfile, GROUP_CONFIG, "Network", NULL);
- if (iface->network.essid != NULL)
- g_key_file_set_string(keyfile, iface->network.essid,
- "PSK", iface->network.psk);
+ if (iface->network.identifier != NULL)
+ g_key_file_set_string(keyfile, iface->network.identifier,
+ "PSK", iface->network.passphrase);
}
int __connman_iface_store(struct connman_iface *iface)
diff --git a/src/iface.c b/src/iface.c
index 18c44f66..b9fe5133 100644
--- a/src/iface.c
+++ b/src/iface.c
@@ -134,7 +134,6 @@ static gboolean scan_timeout(gpointer user_data)
switch (iface->state) {
case CONNMAN_IFACE_STATE_SCANNING:
- case CONNMAN_IFACE_STATE_READY:
if (iface->driver->scan)
iface->driver->scan(iface);
return TRUE;
@@ -194,8 +193,6 @@ static void state_changed(struct connman_iface *iface)
break;
case CONNMAN_IFACE_STATE_READY:
- if (iface->flags & CONNMAN_IFACE_FLAG_SCANNING)
- g_timeout_add(20000, scan_timeout, iface);
break;
default:
@@ -379,16 +376,12 @@ void connman_iface_indicate_station(struct connman_iface *iface,
dbus_connection_send(connection, signal, NULL);
dbus_message_unref(signal);
- if (g_str_equal(name, iface->network.essid) == TRUE &&
+ if (g_str_equal(name, iface->network.identifier) == TRUE &&
iface->state == CONNMAN_IFACE_STATE_SCANNING) {
- if (iface->driver->set_network)
- iface->driver->set_network(iface, name);
- if (iface->driver->set_passphrase)
- iface->driver->set_passphrase(iface,
- iface->network.psk);
+ iface->network.identifier = g_strdup(name);
if (iface->driver->connect) {
- iface->driver->connect(iface, NULL);
+ iface->driver->connect(iface, &iface->network);
iface->state = CONNMAN_IFACE_STATE_CONNECT;
state_changed(iface);
}
@@ -574,9 +567,8 @@ static DBusMessage *scan_iface(DBusConnection *conn,
if (reply == NULL)
return NULL;
- if (driver->scan) {
- //driver->scan(iface);
- }
+ if (driver->scan)
+ driver->scan(iface);
dbus_message_append_args(reply, DBUS_TYPE_INVALID);
@@ -751,12 +743,12 @@ static void append_network(DBusMessage *reply,
switch (iface->type) {
case CONNMAN_IFACE_TYPE_80211:
- if (iface->network.essid != NULL)
+ if (iface->network.identifier != NULL)
append_entry(&dict, "ESSID",
- DBUS_TYPE_STRING, &iface->network.essid);
- if (secrets == TRUE && iface->network.psk != NULL)
+ DBUS_TYPE_STRING, &iface->network.identifier);
+ if (secrets == TRUE && iface->network.passphrase != NULL)
append_entry(&dict, "PSK",
- DBUS_TYPE_STRING, &iface->network.psk);
+ DBUS_TYPE_STRING, &iface->network.passphrase);
break;
default:
break;
@@ -811,18 +803,14 @@ static DBusMessage *set_network(DBusConnection *conn,
dbus_message_iter_get_basic(&value, &val);
if (g_strcasecmp(key, "ESSID") == 0) {
- g_free(iface->network.essid);
- iface->network.essid = g_strdup(val);
- if (iface->driver->set_network)
- iface->driver->set_network(iface, val);
+ g_free(iface->network.identifier);
+ iface->network.identifier = g_strdup(val);
changed = TRUE;
}
if (g_strcasecmp(key, "PSK") == 0) {
- g_free(iface->network.psk);
- iface->network.psk = g_strdup(val);
- if (iface->driver->set_passphrase)
- iface->driver->set_passphrase(iface, val);
+ g_free(iface->network.passphrase);
+ iface->network.passphrase = g_strdup(val);
changed = TRUE;
}
@@ -845,6 +833,12 @@ static DBusMessage *set_network(DBusConnection *conn,
dbus_connection_send(conn, signal, NULL);
dbus_message_unref(signal);
}
+
+ if (iface->driver->disconnect)
+ iface->driver->disconnect(iface);
+
+ if (iface->driver->connect)
+ iface->driver->connect(iface, &iface->network);
}
return reply;
@@ -862,11 +856,14 @@ static DBusMessage *select_network(DBusConnection *conn,
dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &network,
DBUS_TYPE_INVALID);
- g_free(iface->network.essid);
- iface->network.essid = g_strdup(network);
+ g_free(iface->network.identifier);
+ iface->network.identifier = g_strdup(network);
+
+ if (iface->driver->disconnect)
+ iface->driver->disconnect(iface);
- if (iface->driver->set_network)
- iface->driver->set_network(iface, network);
+ if (iface->driver->connect)
+ iface->driver->connect(iface, &iface->network);
reply = dbus_message_new_method_return(msg);
if (reply == NULL)
@@ -1053,7 +1050,8 @@ static void device_free(void *data)
g_free(iface->udi);
g_free(iface->sysfs);
g_free(iface->identifier);
- g_free(iface->network.essid);
+ g_free(iface->network.identifier);
+ g_free(iface->network.passphrase);
g_free(iface->device.driver);
g_free(iface->device.vendor);
g_free(iface->device.product);
@@ -1160,7 +1158,8 @@ static int probe_device(LibHalContext *ctx,
__connman_iface_load(iface);
DBG("iface %p network %s secret %s", iface,
- iface->network.essid, iface->network.psk);
+ iface->network.identifier,
+ iface->network.passphrase);
conn = libhal_ctx_get_dbus_connection(ctx);