X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Finstall.c;h=cfbd50ead954c93e518f19d05be6ef7f6402f5fe;hp=b37bbbdc5acd64bbf1faf62516178098f7468a03;hb=dad503169b2665ecfd3f5bfb3c936897e44ecca7;hpb=c0576cd6d61b81d3bab307e2deee10447de115db diff --git a/src/install.c b/src/install.c index b37bbbdc5..cfbd50ead 100644 --- a/src/install.c +++ b/src/install.c @@ -126,8 +126,6 @@ static int add_file_change( UnitFileChange *c; unsigned i; - assert(type >= 0); - assert(type < _UNIT_FILE_CHANGE_TYPE_MAX); assert(path); assert(!changes == !n_changes); @@ -481,7 +479,6 @@ static int find_symlinks_fd( t = path_make_absolute(name, config_path); if (!t) { free(p); - free(dest); r = -ENOMEM; break; } @@ -1021,11 +1018,11 @@ static int unit_file_load( const char *path, bool allow_symlink) { - const ConfigItem items[] = { - { "Alias", config_parse_strv, 0, &info->aliases, "Install" }, - { "WantedBy", config_parse_strv, 0, &info->wanted_by, "Install" }, - { "Also", config_parse_also, 0, c, "Install" }, - { NULL, NULL, 0, NULL, NULL } + const ConfigTableItem items[] = { + { "Install", "Alias", config_parse_strv, 0, &info->aliases }, + { "Install", "WantedBy", config_parse_strv, 0, &info->wanted_by }, + { "Install", "Also", config_parse_also, 0, c }, + { NULL, NULL, NULL, 0, NULL } }; int fd; @@ -1046,7 +1043,7 @@ static int unit_file_load( return -ENOMEM; } - r = config_parse(path, f, NULL, items, true, info); + r = config_parse(path, f, NULL, config_item_table_lookup, (void*) items, true, info); fclose(f); if (r < 0) return r; @@ -1414,6 +1411,10 @@ int unit_file_enable( goto finish; } + /* This will return the number of symlink rules that were + supposed to be created, not the ones actually created. This is + useful to determine whether the passed files hat any + installation data at all. */ r = install_context_apply(&c, &paths, config_path, root_dir, force, changes, n_changes); finish: @@ -1514,6 +1515,7 @@ int unit_file_reenable( r = remove_marked_symlinks(remove_symlinks_to, config_path, changes, n_changes); + /* Returns number of symlinks that where supposed to be installed. */ q = install_context_apply(&c, &paths, config_path, root_dir, force, changes, n_changes); if (r == 0) r = q; @@ -1763,6 +1765,7 @@ int unit_file_preset( if (r == 0) r = q; + /* Returns number of symlinks that where supposed to be installed. */ q = install_context_apply(&plus, &paths, config_path, root_dir, force, changes, n_changes); if (r == 0) r = q; @@ -1901,7 +1904,7 @@ int unit_file_get_list( } else if (r > 0) { f->state = UNIT_FILE_DISABLED; goto found; - } else if (r == 0) { + } else { f->state = UNIT_FILE_STATIC; goto found; }