dropin: let's reduce duplicate a bit
authorLennart Poettering <lennart@poettering.net>
Thu, 9 Feb 2017 19:08:58 +0000 (20:08 +0100)
committerLennart Poettering <lennart@poettering.net>
Thu, 9 Feb 2017 19:08:58 +0000 (20:08 +0100)
After generating the template name we can shortcut things and just call
unit_file_find_dirs() from inside itself, just with the new name and
save a good number of duplicate lines.

src/shared/dropin.c

index 0f29c5c..d645a6a 100644 (file)
@@ -164,22 +164,15 @@ static int unit_file_find_dirs(
         }
 
         if (unit_name_is_valid(name, UNIT_NAME_INSTANCE)) {
-                _cleanup_free_ char *template = NULL, *p = NULL;
                 /* Also try the template dir */
 
+                _cleanup_free_ char *template = NULL;
+
                 r = unit_name_template(name, &template);
                 if (r < 0)
                         return log_error_errno(r, "Failed to generate template from unit name: %m");
 
-                p = strjoin(unit_path, "/", template, suffix);
-                if (!p)
-                        return log_oom();
-
-                if (!unit_path_cache || set_get(unit_path_cache, p)) {
-                        r = unit_file_find_dir(original_root, p, dirs);
-                        if (r < 0)
-                                return r;
-                }
+                return unit_file_find_dirs(original_root, unit_path_cache, unit_path, template, suffix, dirs);
         }
 
         return 0;