From cc350edc6b66083b3f29c576b31e5a7570945080 Mon Sep 17 00:00:00 2001 From: Martin Xu Date: Mon, 23 Nov 2009 15:56:56 +0800 Subject: [PATCH] Add function connman_network_set_error --- include/network.h | 7 +++++++ src/network.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/include/network.h b/include/network.h index ab3784f..2378d30 100644 --- a/include/network.h +++ b/include/network.h @@ -53,6 +53,11 @@ enum connman_network_protocol { CONNMAN_NETWORK_PROTOCOL_PPP = 2, }; +enum connman_network_error { + CONNMAN_NETWORK_ERROR_UNKNOWN = 0, + CONNMAN_NETWORK_ERROR_ASSOCIATE_FAIL = 1, +}; + struct connman_network; struct connman_network *connman_network_create(const char *identifier, @@ -78,6 +83,8 @@ int connman_network_set_available(struct connman_network *network, connman_bool_t connman_network_get_available(struct connman_network *network); int connman_network_set_associating(struct connman_network *network, connman_bool_t associating); +void connman_network_set_error(struct connman_network *network, + enum connman_network_error error); int connman_network_set_connected(struct connman_network *network, connman_bool_t connected); connman_bool_t connman_network_get_connected(struct connman_network *network); diff --git a/src/network.c b/src/network.c index ea347be..727cfa3 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; -- 2.7.4