chiark / gitweb /
manager: recheck unit paths on daemon reload
authorLennart Poettering <lennart@poettering.net>
Tue, 15 Jun 2010 12:32:26 +0000 (14:32 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 15 Jun 2010 12:32:26 +0000 (14:32 +0200)
src/manager.c
src/systemctl.c

index 38964939c3336d1fdc9511ffb23e1b10cc3b7b93..b4b963a66265e5c006aabb1c4e1b0a6530befbf6 100644 (file)
@@ -241,6 +241,12 @@ static int manager_find_paths(Manager *m) {
 
         assert(m);
 
 
         assert(m);
 
+        /* Unset previous data, in case we are called on reload */
+        strv_free(m->unit_path);
+        strv_free(m->sysvinit_path);
+        strv_free(m->sysvrcnd_path);
+        m->unit_path = m->sysvinit_path = m->sysvrcnd_path = NULL;
+
         /* First priority is whatever has been passed to us via env
          * vars */
         if ((e = getenv("SYSTEMD_UNIT_PATH")))
         /* First priority is whatever has been passed to us via env
          * vars */
         if ((e = getenv("SYSTEMD_UNIT_PATH")))
@@ -2346,6 +2352,10 @@ int manager_reload(Manager *m) {
         /* From here on there is no way back. */
         manager_clear_jobs_and_units(m);
 
         /* From here on there is no way back. */
         manager_clear_jobs_and_units(m);
 
+        /* Find new unit paths */
+        if ((q = manager_find_paths(m)) < 0)
+                r = q;
+
         /* First, enumerate what we can from all config files */
         if ((q = manager_enumerate(m)) < 0)
                 r = q;
         /* First, enumerate what we can from all config files */
         if ((q = manager_enumerate(m)) < 0)
                 r = q;
index b0fb7b24ae83ff2d6d668ebda6fb55ccce288d9a..be32b0d152d2c849709af00dbc9ebcd0ffc04fcb 100644 (file)
@@ -1397,7 +1397,6 @@ static int parse_argv(int argc, char *argv[]) {
 
 int main(int argc, char*argv[]) {
 
 
 int main(int argc, char*argv[]) {
 
-
         static const struct {
                 const char* verb;
                 const enum {
         static const struct {
                 const char* verb;
                 const enum {