From 3dce61ceefbe49774724917d1e61ad1d41640f52 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Tue, 8 Jan 2008 11:08:07 +0100 Subject: [PATCH] Update interface constants and definitions --- include/iface.h | 30 ++++++++++++++++++++++++++---- plugins/80211.c | 14 +++++++++++++- plugins/supplicant.c | 2 +- src/iface.c | 4 ++-- 4 files changed, 42 insertions(+), 8 deletions(-) diff --git a/include/iface.h b/include/iface.h index ed85984..4e2a30c 100644 --- a/include/iface.h +++ b/include/iface.h @@ -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; diff --git a/plugins/80211.c b/plugins/80211.c index 5a74de5..558dd97 100644 --- a/plugins/80211.c +++ b/plugins/80211.c @@ -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, diff --git a/plugins/supplicant.c b/plugins/supplicant.c index 1eb729b..4787f43 100644 --- a/plugins/supplicant.c +++ b/plugins/supplicant.c @@ -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) { diff --git a/src/iface.c b/src/iface.c index 9c9d735..fce6dd0 100644 --- a/src/iface.c +++ b/src/iface.c @@ -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; -- 2.7.4