#include <string.h>
#include <assert.h>
+#include "sd-bus.h"
#include "path-util.h"
#include "util.h"
#include "unit-name.h"
+#include "def.h"
#define VALID_CHARS \
- "0123456789" \
- "abcdefghijklmnopqrstuvwxyz" \
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
+ DIGITS LETTERS \
":-_.\\"
static const char* const unit_type_table[_UNIT_TYPE_MAX] = {
[UNIT_SERVICE] = "service",
[UNIT_SOCKET] = "socket",
+ [UNIT_BUSNAME] = "busname",
[UNIT_TARGET] = "target",
+ [UNIT_SNAPSHOT] = "snapshot",
[UNIT_DEVICE] = "device",
[UNIT_MOUNT] = "mount",
[UNIT_AUTOMOUNT] = "automount",
- [UNIT_SNAPSHOT] = "snapshot",
- [UNIT_TIMER] = "timer",
[UNIT_SWAP] = "swap",
+ [UNIT_TIMER] = "timer",
[UNIT_PATH] = "path",
[UNIT_SLICE] = "slice",
[UNIT_SCOPE] = "scope"
path_kill_slashes(p);
- if (streq(p, "/")) {
+ if (streq(p, "/") || streq(p, "")) {
free(p);
return strdup("-");
}
}
char *unit_name_to_path(const char *name) {
- char *w, *e;
+ _cleanup_free_ char *w = NULL;
assert(name);
if (!w)
return NULL;
- e = unit_name_path_unescape(w);
- free(w);
-
- return e;
+ return unit_name_path_unescape(w);
}
char *unit_dbus_path_from_name(const char *name) {
assert(name);
- e = bus_path_escape(name);
+ e = sd_bus_label_escape(name);
if (!e)
return NULL;
if (!e)
return -EINVAL;
- n = bus_path_unescape(e);
+ n = sd_bus_label_unescape(e);
if (!n)
return -ENOMEM;