diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2009-03-31 18:33:09 -0700 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2009-03-31 18:33:09 -0700 |
commit | 17112569b2227e443126d34dfac86e40c648ecab (patch) | |
tree | 299301774032788ee63c35dc118023b1b85a059c /src/dbus.c | |
parent | 1f51bad6c5ad8510a9012299f87a7d3f31054c80 (diff) | |
download | connman-17112569b2227e443126d34dfac86e40c648ecab.tar.gz connman-17112569b2227e443126d34dfac86e40c648ecab.tar.bz2 connman-17112569b2227e443126d34dfac86e40c648ecab.zip |
Add helper function to encode D-Bus object paths
Diffstat (limited to 'src/dbus.c')
-rw-r--r-- | src/dbus.c | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -23,8 +23,36 @@ #include <config.h> #endif +#include <string.h> + #include "connman.h" +char *connman_dbus_encode_string(const char *value) +{ + GString *str; + unsigned int i, size; + + if (value == NULL) + return NULL; + + size = strlen(value); + + str = g_string_new(NULL); + if (str == NULL) + return NULL; + + for (i = 0; i < size; i++) { + const char tmp = value[i]; + if ((tmp < '0' || tmp > '9') && (tmp < 'A' || tmp > 'Z') && + (tmp < 'a' || tmp > 'z')) + g_string_append_printf(str, "_%02x", tmp); + else + str = g_string_append_c(str, tmp); + } + + return g_string_free(str, FALSE); +} + void connman_dbus_property_append_variant(DBusMessageIter *iter, const char *key, int type, void *val) { |