summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/network.h2
-rw-r--r--src/network.c28
2 files changed, 30 insertions, 0 deletions
diff --git a/include/network.h b/include/network.h
index 96d2d28f..d71381b8 100644
--- a/include/network.h
+++ b/include/network.h
@@ -114,6 +114,8 @@ int connman_network_set_string(struct connman_network *network,
const char *key, const char *value);
const char *connman_network_get_string(struct connman_network *network,
const char *key);
+int connman_network_set_passphrase(struct connman_network *network,
+ const char* passphrase);
int connman_network_set_bool(struct connman_network *network,
const char *key, connman_bool_t value);
connman_bool_t connman_network_get_bool(struct connman_network *network,
diff --git a/src/network.c b/src/network.c
index aebf7cf7..079453c0 100644
--- a/src/network.c
+++ b/src/network.c
@@ -1442,6 +1442,34 @@ const char *connman_network_get_string(struct connman_network *network,
}
/**
+ * connman_network_set_passphrase:
+ * @network: network structure
+ * @passphrase: network passphrase
+ *
+ * Set network passphrase.
+ * If the network is linked to a service, the latter gets his passphrase
+ * set as well.
+ */
+int connman_network_set_passphrase(struct connman_network *network,
+ const char* passphrase)
+{
+ struct connman_service *service;
+
+ service = __connman_service_lookup_from_network(network);
+ if (service == NULL) {
+ connman_network_set_string(network, "WiFi.Passphrase",
+ passphrase);
+
+ return 0;
+ }
+
+ __connman_service_set_passphrase(service, passphrase);
+
+ return 0;
+}
+
+
+/**
* connman_network_set_bool:
* @network: network structure
* @key: unique identifier