Update interface constants and definitions
authorMarcel Holtmann <marcel@holtmann.org>
Tue, 8 Jan 2008 10:08:07 +0000 (11:08 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 8 Jan 2008 10:08:07 +0000 (11:08 +0100)
include/iface.h
plugins/80211.c
plugins/supplicant.c
src/iface.c

index ed85984..4e2a30c 100644 (file)
@@ -33,7 +33,8 @@ enum connman_iface_type {
        CONNMAN_IFACE_TYPE_80203     = 1,
        CONNMAN_IFACE_TYPE_80211     = 2,
        CONNMAN_IFACE_TYPE_WIMAX     = 3,
-       CONNMAN_IFACE_TYPE_BLUETOOTH = 4,
+       CONNMAN_IFACE_TYPE_MODEM     = 4,
+       CONNMAN_IFACE_TYPE_BLUETOOTH = 5,
 };
 
 enum connman_iface_flags {
@@ -45,12 +46,31 @@ enum connman_iface_flags {
 
 enum connman_iface_state {
        CONNMAN_IFACE_STATE_UNKNOWN   = 0,
-       CONNMAN_IFACE_STATE_ACTIVE    = 1,
-       CONNMAN_IFACE_STATE_CONNECTED = 2,
-       CONNMAN_IFACE_STATE_READY     = 3,
+       CONNMAN_IFACE_STATE_OFF       = 1,
+       CONNMAN_IFACE_STATE_ENABLED   = 2,
+       CONNMAN_IFACE_STATE_CONNECT   = 3,
+       CONNMAN_IFACE_STATE_CONFIG    = 4,
+       CONNMAN_IFACE_STATE_CARRIER   = 5,
+       CONNMAN_IFACE_STATE_READY     = 6,
+       CONNMAN_IFACE_STATE_SHUTDOWN  = 7,
+};
+
+enum connman_iface_policy {
+       CONNMAN_IFACE_POLICY_UNKNOWN = 0,
+       CONNMAN_IFACE_POLICY_OFF     = 1,
+       CONNMAN_IFACE_POLICY_IGNORE  = 2,
+       CONNMAN_IFACE_POLICY_AUTO    = 3,
+};
+
+enum connman_ipv4_method {
+       CONNMAN_IPV4_METHOD_UNKNOWN = 0,
+       CONNMAN_IPV4_METHOD_OFF     = 1,
+       CONNMAN_IPV4_METHOD_STATIC  = 2,
+       CONNMAN_IPV4_METHOD_DHCP    = 3,
 };
 
 struct connman_ipv4 {
+       enum connman_ipv4_method method;
        struct in_addr address;
        struct in_addr netmask;
        struct in_addr gateway;
@@ -66,11 +86,13 @@ struct connman_iface {
        char *path;
        char *udi;
        char *sysfs;
+       char *identifier;
        int index;
        int carrier;
        enum connman_iface_type type;
        enum connman_iface_flags flags;
        enum connman_iface_state state;
+       enum connman_iface_policy policy;
        struct connman_ipv4 ipv4;
 
        struct connman_iface_driver *driver;
index 5a74de5..558dd97 100644 (file)
@@ -223,7 +223,18 @@ static int iface_activate(struct connman_iface *iface)
 
        printf("[802.11] activate %s\n", data->ifname);
 
-       connman_iface_update(iface, CONNMAN_IFACE_STATE_ACTIVE);
+       connman_iface_update(iface, CONNMAN_IFACE_STATE_ENABLED);
+
+       return 0;
+}
+
+static int iface_shutdown(struct connman_iface *iface)
+{
+       struct iface_data *data = connman_iface_get_data(iface);
+
+       printf("[802.11] shutdown %s\n", data->ifname);
+
+       connman_iface_update(iface, CONNMAN_IFACE_STATE_SHUTDOWN);
 
        return 0;
 }
@@ -510,6 +521,7 @@ static struct connman_iface_driver iface_driver = {
        .probe          = iface_probe,
        .remove         = iface_remove,
        .activate       = iface_activate,
+       .shutdown       = iface_shutdown,
        .scan           = iface_scan,
        .connect        = iface_connect,
        .set_network    = iface_set_network,
index 1eb729b..4787f43 100644 (file)
@@ -100,7 +100,7 @@ static gboolean control_event(GIOChannel *chan,
        if (g_str_has_prefix(buf + 3, "CTRL-EVENT-CONNECTED") == TRUE) {
                printf("[SUPPLICANT] connected\n");
                connman_iface_update(task->iface,
-                                       CONNMAN_IFACE_STATE_CONNECTED);
+                                       CONNMAN_IFACE_STATE_CARRIER);
        }
 
        if (g_str_has_prefix(buf + 3, "CTRL-EVENT-DISCONNECTED") == TRUE) {
index 9c9d735..fce6dd0 100644 (file)
@@ -97,14 +97,14 @@ int connman_iface_update(struct connman_iface *iface,
                                        enum connman_iface_state state)
 {
        switch (state) {
-       case CONNMAN_IFACE_STATE_ACTIVE:
+       case CONNMAN_IFACE_STATE_ENABLED:
                if (iface->type == CONNMAN_IFACE_TYPE_80211) {
                        if (iface->driver->connect)
                                iface->driver->connect(iface, NULL);
                }
                break;
 
-       case CONNMAN_IFACE_STATE_CONNECTED:
+       case CONNMAN_IFACE_STATE_CARRIER:
                __connman_dhcp_request(iface);
                break;