Ensure that all provider object paths are valid
authorMarcel Holtmann <marcel@holtmann.org>
Sat, 21 Aug 2010 21:59:51 +0000 (23:59 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Sat, 21 Aug 2010 21:59:51 +0000 (23:59 +0200)
src/provider.c

index 1dfba21..b011778 100644 (file)
@@ -419,9 +419,15 @@ static void provider_dbus_ident(char *ident)
 {
        int i, len = strlen(ident);
 
-       for (i = 0; i < len; i++)
-               if (ident[i] == '.' || ident[i] == ':')
-                       ident[i] = '_';
+       for (i = 0; i < len; i++) {
+               if (ident[i] >= '0' && ident[i] <= '9')
+                       continue;
+               if (ident[i] >= 'a' && ident[i] <= 'z')
+                       continue;
+               if (ident[i] >= 'A' && ident[i] <= 'Z')
+                       continue;
+               ident[i] = '_';
+       }
 }
 
 int __connman_provider_create_and_connect(DBusMessage *msg)