summaryrefslogtreecommitdiff
path: root/src/network.c
diff options
context:
space:
mode:
authorMartin Xu <martin.xu@intel.com>2009-11-23 15:56:56 +0800
committerMarcel Holtmann <marcel@holtmann.org>2009-11-23 09:19:07 +0100
commitcc350edc6b66083b3f29c576b31e5a7570945080 (patch)
tree47d5a0878c762bffbba40d565bba43719865801c /src/network.c
parent66101a531e2b230d9f1c799cd816b26d53377385 (diff)
downloadconnman-cc350edc6b66083b3f29c576b31e5a7570945080.tar.gz
connman-cc350edc6b66083b3f29c576b31e5a7570945080.tar.bz2
connman-cc350edc6b66083b3f29c576b31e5a7570945080.zip
Add function connman_network_set_error
Diffstat (limited to 'src/network.c')
-rw-r--r--src/network.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/network.c b/src/network.c
index ea347be6..727cfa31 100644
--- a/src/network.c
+++ b/src/network.c
@@ -687,6 +687,35 @@ int connman_network_set_associating(struct connman_network *network,
return 0;
}
+static void set_associate_error(struct connman_network *network)
+{
+ struct connman_service *service;
+
+ if (network->associating == FALSE)
+ return ;
+
+ network->associating = FALSE;
+
+ service = __connman_service_lookup_from_network(network);
+
+ __connman_service_indicate_state(service,
+ CONNMAN_SERVICE_STATE_FAILURE);
+}
+
+void connman_network_set_error(struct connman_network *network,
+ enum connman_network_error error)
+{
+ DBG("nework %p, error %d", network, error);
+
+ switch (error) {
+ case CONNMAN_NETWORK_ERROR_UNKNOWN:
+ return;
+ case CONNMAN_NETWORK_ERROR_ASSOCIATE_FAIL:
+ set_associate_error(network);
+ break;
+ }
+}
+
static gboolean set_connected(gpointer user_data)
{
struct connman_network *network = user_data;