summaryrefslogtreecommitdiff
path: root/src/detect.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-01-01 18:52:16 +0100
committerMarcel Holtmann <marcel@holtmann.org>2009-01-01 18:52:16 +0100
commit3909f166fb41fba2521bf84ed5fc87d367c163b8 (patch)
tree80fa5f4c0bc5057805f4bf209447ca34b04af7ae /src/detect.c
parent5be6dc3d4b22d736bb47e6fd6d4d5c8c11f70364 (diff)
downloadconnman-3909f166fb41fba2521bf84ed5fc87d367c163b8.tar.gz
connman-3909f166fb41fba2521bf84ed5fc87d367c163b8.tar.bz2
connman-3909f166fb41fba2521bf84ed5fc87d367c163b8.zip
Allow transport definition for device mode
Diffstat (limited to 'src/detect.c')
-rw-r--r--src/detect.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/detect.c b/src/detect.c
index 781b8fa9..57ea83ee 100644
--- a/src/detect.c
+++ b/src/detect.c
@@ -130,6 +130,7 @@ static void detect_newlink(unsigned short type, int index,
unsigned flags, unsigned change)
{
enum connman_device_type devtype = CONNMAN_DEVICE_TYPE_UNKNOWN;
+ enum connman_device_mode mode;
struct connman_device *device;
gchar *name, *devname;
@@ -198,15 +199,28 @@ static void detect_newlink(unsigned short type, int index,
}
switch (devtype) {
+ case CONNMAN_DEVICE_TYPE_UNKNOWN:
+ case CONNMAN_DEVICE_TYPE_VENDOR:
+ mode = CONNMAN_DEVICE_MODE_UNKNOWN;
+ break;
+ case CONNMAN_DEVICE_TYPE_ETHERNET:
+ mode = CONNMAN_DEVICE_MODE_TRANSPORT_IP;
+ break;
+ case CONNMAN_DEVICE_TYPE_WIFI:
+ case CONNMAN_DEVICE_TYPE_WIMAX:
+ mode = CONNMAN_DEVICE_MODE_NETWORK_SINGLE;
+ break;
+ case CONNMAN_DEVICE_TYPE_BLUETOOTH:
+ mode = CONNMAN_DEVICE_MODE_NETWORK_MULTIPLE;
+ break;
case CONNMAN_DEVICE_TYPE_HSO:
+ mode = CONNMAN_DEVICE_MODE_NETWORK_SINGLE;
connman_device_set_policy(device, CONNMAN_DEVICE_POLICY_MANUAL);
- connman_device_set_mode(device,
- CONNMAN_DEVICE_MODE_SINGLE_NETWORK);
- break;
- default:
break;
}
+ connman_device_set_mode(device, mode);
+
connman_device_set_index(device, index);
connman_device_set_interface(device, devname);