diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2009-04-23 14:49:12 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2009-04-23 14:49:12 +0100 |
commit | 6d6df9a7a4c1dfb794830c08629a9f89a1dea68c (patch) | |
tree | 1f091016635b0173554088c0cd1e2096cccf7ef6 /src/detect.c | |
parent | 0dd4cfa689fa50f12d954fd8e5698d66c1e115a6 (diff) | |
download | connman-6d6df9a7a4c1dfb794830c08629a9f89a1dea68c.tar.gz connman-6d6df9a7a4c1dfb794830c08629a9f89a1dea68c.tar.bz2 connman-6d6df9a7a4c1dfb794830c08629a9f89a1dea68c.zip |
Add extra unique identifier to service object path
Diffstat (limited to 'src/detect.c')
-rw-r--r-- | src/detect.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/detect.c b/src/detect.c index 9f3895df..0dce3d3f 100644 --- a/src/detect.c +++ b/src/detect.c @@ -157,7 +157,7 @@ static char *index2ident(int index, const char *prefix) return NULL; eth = (void *) &ifr.ifr_hwaddr.sa_data; - snprintf(str, len, "%s%02X_%02X_%02X_%02X_%02X_%02X", + snprintf(str, len, "%s%02x%02x%02x%02x%02x%02x", prefix ? prefix : "", eth->ether_addr_octet[0], eth->ether_addr_octet[1], @@ -175,7 +175,7 @@ static void detect_newlink(unsigned short type, int index, enum connman_device_type devtype = CONNMAN_DEVICE_TYPE_UNKNOWN; enum connman_device_mode mode = CONNMAN_DEVICE_MODE_UNKNOWN; struct connman_device *device; - gchar *addr, *name, *devname; + char *addr, *name, *devname, *ident; DBG("type %d index %d", type, index); @@ -264,19 +264,24 @@ static void detect_newlink(unsigned short type, int index, case CONNMAN_DEVICE_TYPE_NOVATEL: case CONNMAN_DEVICE_TYPE_GPS: mode = CONNMAN_DEVICE_MODE_UNKNOWN; + ident = NULL; break; case CONNMAN_DEVICE_TYPE_ETHERNET: mode = CONNMAN_DEVICE_MODE_TRANSPORT_IP; + ident = index2ident(index, NULL); break; case CONNMAN_DEVICE_TYPE_WIFI: case CONNMAN_DEVICE_TYPE_WIMAX: mode = CONNMAN_DEVICE_MODE_NETWORK_SINGLE; + ident = index2ident(index, NULL); break; case CONNMAN_DEVICE_TYPE_BLUETOOTH: mode = CONNMAN_DEVICE_MODE_NETWORK_MULTIPLE; + ident = NULL; break; case CONNMAN_DEVICE_TYPE_HSO: mode = CONNMAN_DEVICE_MODE_NETWORK_SINGLE; + ident = NULL; connman_device_set_policy(device, CONNMAN_DEVICE_POLICY_MANUAL); break; } @@ -286,6 +291,11 @@ static void detect_newlink(unsigned short type, int index, connman_device_set_index(device, index); connman_device_set_interface(device, devname); + if (ident != NULL) { + connman_device_set_ident(device, ident); + g_free(ident); + } + connman_device_set_string(device, "Address", addr); g_free(devname); |