summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-01-07 02:21:23 +0100
committerMarcel Holtmann <marcel@holtmann.org>2009-01-07 02:21:23 +0100
commit27261f7a7c0c6299aafceae15c86f439af009b86 (patch)
treef906c318441d513c31d344700ca99ea63de5345f
parent40c321540fce99a415c3bb49ced39a75399e1f5b (diff)
downloadconnman-27261f7a7c0c6299aafceae15c86f439af009b86.tar.gz
connman-27261f7a7c0c6299aafceae15c86f439af009b86.tar.bz2
connman-27261f7a7c0c6299aafceae15c86f439af009b86.zip
Add support for setting remember state
-rw-r--r--include/network.h2
-rw-r--r--src/network.c43
2 files changed, 45 insertions, 0 deletions
diff --git a/include/network.h b/include/network.h
index 5c62502f..7f32c3c7 100644
--- a/include/network.h
+++ b/include/network.h
@@ -71,6 +71,8 @@ extern int connman_network_set_available(struct connman_network *network,
connman_bool_t available);
extern int connman_network_set_connected(struct connman_network *network,
connman_bool_t connected);
+extern int connman_network_set_remember(struct connman_network *network,
+ connman_bool_t remember);
extern connman_bool_t connman_network_get_remember(struct connman_network *network);
extern int connman_network_connect(struct connman_network *network);
diff --git a/src/network.c b/src/network.c
index 59c3e475..e918b7a3 100644
--- a/src/network.c
+++ b/src/network.c
@@ -648,6 +648,49 @@ int connman_network_set_connected(struct connman_network *network,
}
/**
+ * connman_network_set_remember:
+ * @network: network structure
+ * @remember: remember state
+ *
+ * Change remember state of network (known networks)
+ */
+int connman_network_set_remember(struct connman_network *network,
+ connman_bool_t remember)
+{
+ DBusMessage *signal;
+ DBusMessageIter entry, value;
+ const char *key = "Remember";
+
+ DBG("network %p remember %d", network, remember);
+
+ if (network->remember == remember)
+ return -EALREADY;
+
+ network->remember = remember;
+
+ if (network->registered == FALSE)
+ return 0;
+
+ signal = dbus_message_new_signal(network->element.path,
+ CONNMAN_NETWORK_INTERFACE, "PropertyChanged");
+ if (signal == NULL)
+ return 0;
+
+ dbus_message_iter_init_append(signal, &entry);
+
+ dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key);
+
+ dbus_message_iter_open_container(&entry, DBUS_TYPE_VARIANT,
+ DBUS_TYPE_BOOLEAN_AS_STRING, &value);
+ dbus_message_iter_append_basic(&value, DBUS_TYPE_BOOLEAN, &remember);
+ dbus_message_iter_close_container(&entry, &value);
+
+ g_dbus_send_message(connection, signal);
+
+ return 0;
+}
+
+/**
* connman_network_get_remember:
* @network: network structure
*