Add function connman_network_set_error
authorMartin Xu <martin.xu@intel.com>
Mon, 23 Nov 2009 07:56:56 +0000 (15:56 +0800)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 23 Nov 2009 08:19:07 +0000 (09:19 +0100)
include/network.h
src/network.c

index ab3784f..2378d30 100644 (file)
@@ -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);
index ea347be..727cfa3 100644 (file)
@@ -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;