summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2011-02-01 16:35:08 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2011-02-02 18:45:37 +0100
commitc65767956358ae636cbaf42ac2b6b078317c94b3 (patch)
tree1d0f220b1f20ef15292917a7b7b4536e5d79aa48
parentf66b448cbcca1658f5c5e436baa001ef1b0038f0 (diff)
downloadconnman-c65767956358ae636cbaf42ac2b6b078317c94b3.tar.gz
connman-c65767956358ae636cbaf42ac2b6b078317c94b3.tar.bz2
connman-c65767956358ae636cbaf42ac2b6b078317c94b3.zip
gsupplicant: Add interface bridge setting
-rw-r--r--gsupplicant/gsupplicant.h1
-rw-r--r--gsupplicant/supplicant.c7
-rw-r--r--plugins/wifi.c2
3 files changed, 9 insertions, 1 deletions
diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h
index dca5c2b1..6227ff53 100644
--- a/gsupplicant/gsupplicant.h
+++ b/gsupplicant/gsupplicant.h
@@ -142,6 +142,7 @@ typedef void (*GSupplicantInterfaceCallback) (int result,
void *user_data);
int g_supplicant_interface_create(const char *ifname, const char *driver,
+ const char *bridge,
GSupplicantInterfaceCallback callback,
void *user_data);
int g_supplicant_interface_remove(GSupplicantInterface *interface,
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index 0bd58b93..55c842f4 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -2057,6 +2057,7 @@ struct interface_data {
struct interface_create_data {
const char *ifname;
const char *driver;
+ const char *bridge;
GSupplicantInterface *interface;
GSupplicantInterfaceCallback callback;
void *user_data;
@@ -2149,6 +2150,10 @@ static void interface_create_params(DBusMessageIter *iter, void *user_data)
supplicant_dbus_dict_append_basic(&dict, "Driver",
DBUS_TYPE_STRING, &data->driver);
+ if (data->bridge != NULL)
+ supplicant_dbus_dict_append_basic(&dict, "BridgeIfname",
+ DBUS_TYPE_STRING, &data->bridge);
+
supplicant_dbus_dict_close(iter, &dict);
}
@@ -2220,6 +2225,7 @@ static void interface_get_params(DBusMessageIter *iter, void *user_data)
}
int g_supplicant_interface_create(const char *ifname, const char *driver,
+ const char *bridge,
GSupplicantInterfaceCallback callback,
void *user_data)
{
@@ -2239,6 +2245,7 @@ int g_supplicant_interface_create(const char *ifname, const char *driver,
data->ifname = ifname;
data->driver = driver;
+ data->bridge = bridge;
data->callback = callback;
data->user_data = user_data;
diff --git a/plugins/wifi.c b/plugins/wifi.c
index 78f13fbd..b7055c3d 100644
--- a/plugins/wifi.c
+++ b/plugins/wifi.c
@@ -231,7 +231,7 @@ static int wifi_enable(struct connman_device *device)
DBG("device %p %p", device, wifi);
- return g_supplicant_interface_create(interface, driver,
+ return g_supplicant_interface_create(interface, driver, NULL,
interface_create_callback,
wifi);
}