chiark / gitweb /
unit: when loading symlinked template units, properly add all names on the way to...
authorLennart Poettering <lennart@poettering.net>
Tue, 28 Jun 2011 00:53:15 +0000 (02:53 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 28 Jun 2011 00:53:15 +0000 (02:53 +0200)
src/load-fragment.c
src/logind.h
src/unit-name.c

index 56eaed9..352db6b 100644 (file)
@@ -1661,13 +1661,16 @@ static int open_follow(char **filename, FILE **_f, Set *names, char **_final) {
                  * unit name. */
                 name = file_name_from_path(*filename);
 
-                if (unit_name_is_valid(name, false)) {
-                        if (!(id = set_get(names, name))) {
+                if (unit_name_is_valid(name, true)) {
 
-                                if (!(id = strdup(name)))
+                        id = set_get(names, name);
+                        if (!id) {
+                                id = strdup(name);
+                                if (!id)
                                         return -ENOMEM;
 
-                                if ((r = set_put(names, id)) < 0) {
+                                r = set_put(names, id);
+                                if (r < 0) {
                                         free(id);
                                         return r;
                                 }
index be8bb1d..18dbe11 100644 (file)
@@ -37,6 +37,7 @@
  * recreate VTs when disallocated
  * spawn user systemd
  * direct client API
+ * add configuration file
  * D-Bus method: AttachDevices(seat, devices[]);
  * D-Bus method: SetLinger(user, bool b);
  *
@@ -124,8 +125,6 @@ void manager_gc(Manager *m);
 
 int manager_get_idle_hint(Manager *m, dual_timestamp *t);
 
-bool x11_display_is_local(const char *display);
-
 extern const DBusObjectPathVTable bus_manager_vtable;
 
 DBusHandlerResult bus_message_filter(DBusConnection *c, DBusMessage *message, void *userdata);
index be4e73e..6d45576 100644 (file)
@@ -272,9 +272,10 @@ char *unit_name_unescape(const char *f) {
                 else if (*f == '\\') {
                         int a, b;
 
-                        if (f[1] != 'x' || (a = unhexchar(f[2])) < 0 ||
-                                       (b = unhexchar(f[3])) < 0) {
-                               /* Invalid escape code, let's take it literal then */
+                        if (f[1] != 'x' ||
+                            (a = unhexchar(f[2])) < 0 ||
+                            (b = unhexchar(f[3])) < 0) {
+                                /* Invalid escape code, let's take it literal then */
                                 *(t++) = '\\';
                         } else {
                                 *(t++) = (char) ((a << 4) | b);