diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2022-08-26 09:30:01 +0200 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2022-10-13 19:44:47 +0200 |
commit | cd44ec5a92e594bc286a731ff9be75f8554c2c22 (patch) | |
tree | 2c8cadef21e56000b6f86b37961e2603d0da28cd /src/shared/install.c | |
parent | 0f87041f9404564fac77ab3b6afcef0cab5f3936 (diff) | |
download | systemd-cd44ec5a92e594bc286a731ff9be75f8554c2c22.tar.gz |
shared/install: rename UnitFileChange to InstallChange
It's shorter and more generic. The struct can contain info about changes to
unit files, but also symlinks and errors.
Diffstat (limited to 'src/shared/install.c')
-rw-r--r-- | src/shared/install.c | 142 |
1 files changed, 71 insertions, 71 deletions
diff --git a/src/shared/install.c b/src/shared/install.c index 5da26eeb21..3d74a9ba79 100644 --- a/src/shared/install.c +++ b/src/shared/install.c @@ -265,15 +265,15 @@ static const char* config_path_from_flags(const LookupPaths *lp, UnitFileFlags f return FLAGS_SET(flags, UNIT_FILE_RUNTIME) ? lp->runtime_config : lp->persistent_config; } -int unit_file_changes_add( - UnitFileChange **changes, +int install_changes_add( + InstallChange **changes, size_t *n_changes, int type_or_errno, /* UNIT_FILE_SYMLINK, _UNLINK, _IS_MASKED, _IS_DANGLING if positive or errno if negative */ const char *path, const char *source) { _cleanup_free_ char *p = NULL, *s = NULL; - UnitFileChange *c; + InstallChange *c; assert(!changes == !n_changes); @@ -285,7 +285,7 @@ int unit_file_changes_add( if (!changes) return 0; - c = reallocarray(*changes, *n_changes + 1, sizeof(UnitFileChange)); + c = reallocarray(*changes, *n_changes + 1, sizeof(InstallChange)); if (!c) return -ENOMEM; *changes = c; @@ -306,7 +306,7 @@ int unit_file_changes_add( path_simplify(s); } - c[(*n_changes)++] = (UnitFileChange) { + c[(*n_changes)++] = (InstallChange) { .type_or_errno = type_or_errno, .path = TAKE_PTR(p), .source = TAKE_PTR(s), @@ -315,7 +315,7 @@ int unit_file_changes_add( return 0; } -void unit_file_changes_free(UnitFileChange *changes, size_t n_changes) { +void install_changes_free(InstallChange *changes, size_t n_changes) { assert(changes || n_changes == 0); for (size_t i = 0; i < n_changes; i++) { @@ -326,7 +326,7 @@ void unit_file_changes_free(UnitFileChange *changes, size_t n_changes) { free(changes); } -void unit_file_dump_changes(int r, const char *verb, const UnitFileChange *changes, size_t n_changes, bool quiet) { +void install_changes_dump(int r, const char *verb, const InstallChange *changes, size_t n_changes, bool quiet) { int err = 0; assert(changes || n_changes == 0); @@ -484,7 +484,7 @@ static int create_symlink( const char *old_path, const char *new_path, bool force, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_free_ char *dest = NULL; @@ -508,12 +508,12 @@ static int create_symlink( (void) mkdir_parents_label(new_path, 0755); if (symlink(old_path, new_path) >= 0) { - unit_file_changes_add(changes, n_changes, UNIT_FILE_SYMLINK, new_path, old_path); + install_changes_add(changes, n_changes, UNIT_FILE_SYMLINK, new_path, old_path); return 1; } if (errno != EEXIST) { - unit_file_changes_add(changes, n_changes, -errno, new_path, NULL); + install_changes_add(changes, n_changes, -errno, new_path, NULL); return -errno; } @@ -523,7 +523,7 @@ static int create_symlink( if (r == -EINVAL) r = -EEXIST; - unit_file_changes_add(changes, n_changes, r, new_path, NULL); + install_changes_add(changes, n_changes, r, new_path, NULL); return r; } @@ -534,18 +534,18 @@ static int create_symlink( } if (!force) { - unit_file_changes_add(changes, n_changes, -EEXIST, new_path, dest); + install_changes_add(changes, n_changes, -EEXIST, new_path, dest); return -EEXIST; } r = symlink_atomic(old_path, new_path); if (r < 0) { - unit_file_changes_add(changes, n_changes, r, new_path, NULL); + install_changes_add(changes, n_changes, r, new_path, NULL); return r; } - unit_file_changes_add(changes, n_changes, UNIT_FILE_UNLINK, new_path, NULL); - unit_file_changes_add(changes, n_changes, UNIT_FILE_SYMLINK, new_path, old_path); + install_changes_add(changes, n_changes, UNIT_FILE_UNLINK, new_path, NULL); + install_changes_add(changes, n_changes, UNIT_FILE_SYMLINK, new_path, old_path); return 1; } @@ -586,7 +586,7 @@ static int remove_marked_symlinks_fd( const LookupPaths *lp, bool dry_run, bool *restart, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_closedir_ DIR *d = NULL; @@ -671,7 +671,7 @@ static int remove_marked_symlinks_fd( continue; if (q < 0) { log_debug_errno(q, "Failed to resolve symlink \"%s\": %m", p); - unit_file_changes_add(changes, n_changes, q, p, NULL); + install_changes_add(changes, n_changes, q, p, NULL); if (r == 0) r = q; @@ -691,14 +691,14 @@ static int remove_marked_symlinks_fd( if (unlinkat(fd, de->d_name, 0) < 0 && errno != ENOENT) { if (r == 0) r = -errno; - unit_file_changes_add(changes, n_changes, -errno, p, NULL); + install_changes_add(changes, n_changes, -errno, p, NULL); continue; } (void) rmdir_parents(p, config_path); } - unit_file_changes_add(changes, n_changes, UNIT_FILE_UNLINK, p, NULL); + install_changes_add(changes, n_changes, UNIT_FILE_UNLINK, p, NULL); /* Now, remember the full path (but with the root prefix removed) of * the symlink we just removed, and remove any symlinks to it, too. */ @@ -719,7 +719,7 @@ static int remove_marked_symlinks( const char *config_path, const LookupPaths *lp, bool dry_run, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_close_ int fd = -1; @@ -1076,7 +1076,7 @@ static UnitFileInstallInfo *install_info_find(InstallContext *ctx, const char *n static int install_info_may_process( const UnitFileInstallInfo *i, const LookupPaths *lp, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { assert(i); assert(lp); @@ -1085,12 +1085,12 @@ static int install_info_may_process( * transient or generated and thus not subject to enable/disable operations. */ if (i->type == UNIT_FILE_TYPE_MASKED) { - unit_file_changes_add(changes, n_changes, -ERFKILL, i->path, NULL); + install_changes_add(changes, n_changes, -ERFKILL, i->path, NULL); return -ERFKILL; } if (path_is_generator(lp, i->path) || path_is_transient(lp, i->path)) { - unit_file_changes_add(changes, n_changes, -EADDRNOTAVAIL, i->path, NULL); + install_changes_add(changes, n_changes, -EADDRNOTAVAIL, i->path, NULL); return -EADDRNOTAVAIL; } @@ -1731,7 +1731,7 @@ static int install_info_discover( const char *name_or_path, SearchFlags flags, UnitFileInstallInfo **ret, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { UnitFileInstallInfo *info; @@ -1746,7 +1746,7 @@ static int install_info_discover( r = install_info_traverse(ctx, lp, info, flags, ret); if (r < 0) - unit_file_changes_add(changes, n_changes, r, name_or_path, NULL); + install_changes_add(changes, n_changes, r, name_or_path, NULL); return r; } @@ -1756,7 +1756,7 @@ static int install_info_discover_and_check( const char *name_or_path, SearchFlags flags, UnitFileInstallInfo **ret, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { int r; @@ -1772,7 +1772,7 @@ int unit_file_verify_alias( const UnitFileInstallInfo *info, const char *dst, char **ret_dst, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_free_ char *dst_updated = NULL; @@ -1807,7 +1807,7 @@ int unit_file_verify_alias( if (!p) p = endswith(dir, ".requires"); if (!p) { - unit_file_changes_add(changes, n_changes, -EXDEV, dst, NULL); + install_changes_add(changes, n_changes, -EXDEV, dst, NULL); return log_debug_errno(SYNTHETIC_ERRNO(EXDEV), "Invalid path \"%s\" in alias.", dir); } @@ -1815,7 +1815,7 @@ int unit_file_verify_alias( UnitNameFlags type = unit_name_classify(dir); if (type < 0) { - unit_file_changes_add(changes, n_changes, -EXDEV, dst, NULL); + install_changes_add(changes, n_changes, -EXDEV, dst, NULL); return log_debug_errno(SYNTHETIC_ERRNO(EXDEV), "Invalid unit name component \"%s\" in alias.", dir); } @@ -1827,7 +1827,7 @@ int unit_file_verify_alias( if (r < 0) return log_error_errno(r, "Failed to verify alias validity: %m"); if (r == 0) { - unit_file_changes_add(changes, n_changes, -EXDEV, dst, info->name); + install_changes_add(changes, n_changes, -EXDEV, dst, info->name); return log_debug_errno(SYNTHETIC_ERRNO(EXDEV), "Invalid unit \"%s\" symlink \"%s\".", info->name, dst); @@ -1841,7 +1841,7 @@ int unit_file_verify_alias( UnitNameFlags type = unit_name_to_instance(info->name, &inst); if (type < 0) { - unit_file_changes_add(changes, n_changes, -EUCLEAN, info->name, NULL); + install_changes_add(changes, n_changes, -EUCLEAN, info->name, NULL); return log_debug_errno(type, "Failed to extract instance name from \"%s\": %m", info->name); } @@ -1857,7 +1857,7 @@ int unit_file_verify_alias( if (r == -ELOOP) /* -ELOOP means self-alias, which we (quietly) ignore */ return r; if (r < 0) { - unit_file_changes_add(changes, n_changes, + install_changes_add(changes, n_changes, r == -EINVAL ? -EXDEV : r, dst_updated ?: dst, info->name); @@ -1875,7 +1875,7 @@ static int install_info_symlink_alias( const LookupPaths *lp, const char *config_path, bool force, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { int r = 0, q; @@ -1889,7 +1889,7 @@ static int install_info_symlink_alias( q = install_name_printf(scope, info, *s, &dst); if (q < 0) { - unit_file_changes_add(changes, n_changes, q, *s, NULL); + install_changes_add(changes, n_changes, q, *s, NULL); r = r < 0 ? r : q; continue; } @@ -1921,7 +1921,7 @@ static int install_info_symlink_wants( const char *config_path, char **list, const char *suffix, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_free_ char *buf = NULL; @@ -1960,7 +1960,7 @@ static int install_info_symlink_wants( path = TAKE_PTR(instance.path); if (instance.type == UNIT_FILE_TYPE_MASKED) { - unit_file_changes_add(changes, n_changes, -ERFKILL, path, NULL); + install_changes_add(changes, n_changes, -ERFKILL, path, NULL); return -ERFKILL; } @@ -1979,7 +1979,7 @@ static int install_info_symlink_wants( q = install_name_printf(scope, info, *s, &dst); if (q < 0) { - unit_file_changes_add(changes, n_changes, q, *s, NULL); + install_changes_add(changes, n_changes, q, *s, NULL); return q; } @@ -1995,10 +1995,10 @@ static int install_info_symlink_wants( continue; if (unit_name_is_valid(dst, UNIT_NAME_ANY)) { - unit_file_changes_add(changes, n_changes, -EIDRM, dst, n); + install_changes_add(changes, n_changes, -EIDRM, dst, n); r = -EIDRM; } else { - unit_file_changes_add(changes, n_changes, -EUCLEAN, dst, NULL); + install_changes_add(changes, n_changes, -EUCLEAN, dst, NULL); r = -EUCLEAN; } @@ -2014,7 +2014,7 @@ static int install_info_symlink_wants( r = q; if (unit_file_exists(scope, lp, dst) == 0) - unit_file_changes_add(changes, n_changes, UNIT_FILE_DESTINATION_NOT_PRESENT, dst, info->path); + install_changes_add(changes, n_changes, UNIT_FILE_DESTINATION_NOT_PRESENT, dst, info->path); } return r; @@ -2025,7 +2025,7 @@ static int install_info_symlink_link( const LookupPaths *lp, const char *config_path, bool force, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_free_ char *path = NULL; @@ -2055,7 +2055,7 @@ static int install_info_apply( UnitFileInstallInfo *info, const LookupPaths *lp, const char *config_path, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { int r, q; @@ -2095,7 +2095,7 @@ static int install_context_apply( UnitFileFlags file_flags, const char *config_path, SearchFlags flags, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { UnitFileInstallInfo *i; @@ -2123,20 +2123,20 @@ static int install_context_apply( q = install_info_traverse(ctx, lp, i, flags, NULL); if (q < 0) { if (i->auxiliary) { - q = unit_file_changes_add(changes, n_changes, UNIT_FILE_AUXILIARY_FAILED, NULL, i->name); + q = install_changes_add(changes, n_changes, UNIT_FILE_AUXILIARY_FAILED, NULL, i->name); if (q < 0) return q; continue; } - unit_file_changes_add(changes, n_changes, q, i->name, NULL); + install_changes_add(changes, n_changes, q, i->name, NULL); return q; } /* We can attempt to process a masked unit when a different unit * that we were processing specifies it in Also=. */ if (i->type == UNIT_FILE_TYPE_MASKED) { - unit_file_changes_add(changes, n_changes, UNIT_FILE_IS_MASKED, i->path, NULL); + install_changes_add(changes, n_changes, UNIT_FILE_IS_MASKED, i->path, NULL); if (r >= 0) /* Assume that something *could* have been enabled here, * avoid "empty [Install] section" warning. */ @@ -2164,7 +2164,7 @@ static int install_context_mark_for_removal( const LookupPaths *lp, Set **remove_symlinks_to, const char *config_path, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { UnitFileInstallInfo *i; @@ -2192,22 +2192,22 @@ static int install_context_mark_for_removal( r = install_info_traverse(ctx, lp, i, SEARCH_LOAD|SEARCH_FOLLOW_CONFIG_SYMLINKS, NULL); if (r == -ENOLINK) { log_debug_errno(r, "Name %s leads to a dangling symlink, removing name.", i->name); - unit_file_changes_add(changes, n_changes, UNIT_FILE_IS_DANGLING, i->path ?: i->name, NULL); + install_changes_add(changes, n_changes, UNIT_FILE_IS_DANGLING, i->path ?: i->name, NULL); } else if (r == -ENOENT) { if (i->auxiliary) /* some unit specified in Also= or similar is missing */ log_debug_errno(r, "Auxiliary unit of %s not found, removing name.", i->name); else { log_debug_errno(r, "Unit %s not found, removing name.", i->name); - unit_file_changes_add(changes, n_changes, r, i->path ?: i->name, NULL); + install_changes_add(changes, n_changes, r, i->path ?: i->name, NULL); } } else if (r < 0) { log_debug_errno(r, "Failed to find unit %s, removing name: %m", i->name); - unit_file_changes_add(changes, n_changes, r, i->path ?: i->name, NULL); + install_changes_add(changes, n_changes, r, i->path ?: i->name, NULL); } else if (i->type == UNIT_FILE_TYPE_MASKED) { log_debug("Unit file %s is masked, ignoring.", i->name); - unit_file_changes_add(changes, n_changes, UNIT_FILE_IS_MASKED, i->path ?: i->name, NULL); + install_changes_add(changes, n_changes, UNIT_FILE_IS_MASKED, i->path ?: i->name, NULL); continue; } else if (i->type != UNIT_FILE_TYPE_REGULAR) { log_debug("Unit %s has type %s, ignoring.", i->name, unit_file_type_to_string(i->type) ?: "invalid"); @@ -2227,7 +2227,7 @@ int unit_file_mask( UnitFileFlags flags, const char *root_dir, char **names, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_(lookup_paths_free) LookupPaths lp = {}; @@ -2272,7 +2272,7 @@ int unit_file_unmask( UnitFileFlags flags, const char *root_dir, char **names, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_(lookup_paths_free) LookupPaths lp = {}; @@ -2338,13 +2338,13 @@ int unit_file_unmask( if (errno != ENOENT) { if (r >= 0) r = -errno; - unit_file_changes_add(changes, n_changes, -errno, path, NULL); + install_changes_add(changes, n_changes, -errno, path, NULL); } continue; } - unit_file_changes_add(changes, n_changes, UNIT_FILE_UNLINK, path, NULL); + install_changes_add(changes, n_changes, UNIT_FILE_UNLINK, path, NULL); rp = skip_root(lp.root_dir, path); q = mark_symlink_for_removal(&remove_symlinks_to, rp ?: path); @@ -2364,7 +2364,7 @@ int unit_file_link( UnitFileFlags flags, const char *root_dir, char **files, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_(lookup_paths_free) LookupPaths lp = {}; @@ -2463,7 +2463,7 @@ int unit_file_revert( LookupScope scope, const char *root_dir, char **names, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_set_free_free_ Set *remove_symlinks_to = NULL; @@ -2589,10 +2589,10 @@ int unit_file_revert( if (!t) return -ENOMEM; - unit_file_changes_add(changes, n_changes, UNIT_FILE_UNLINK, t, NULL); + install_changes_add(changes, n_changes, UNIT_FILE_UNLINK, t, NULL); } - unit_file_changes_add(changes, n_changes, UNIT_FILE_UNLINK, *i, NULL); + install_changes_add(changes, n_changes, UNIT_FILE_UNLINK, *i, NULL); rp = skip_root(lp.root_dir, *i); q = mark_symlink_for_removal(&remove_symlinks_to, rp ?: *i); @@ -2618,7 +2618,7 @@ int unit_file_add_dependency( char **names, const char *target, UnitDependency dep, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_(lookup_paths_free) LookupPaths lp = {}; @@ -2688,7 +2688,7 @@ static int do_unit_file_enable( UnitFileFlags flags, const char *config_path, char **names_or_paths, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_(install_context_done) InstallContext ctx = { .scope = scope }; @@ -2719,7 +2719,7 @@ int unit_file_enable( UnitFileFlags flags, const char *root_dir, char **names_or_paths, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_(lookup_paths_free) LookupPaths lp = {}; @@ -2745,7 +2745,7 @@ static int do_unit_file_disable( UnitFileFlags flags, const char *config_path, char **names, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_(install_context_done) InstallContext ctx = { .scope = scope }; @@ -2774,7 +2774,7 @@ int unit_file_disable( UnitFileFlags flags, const char *root_dir, char **files, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_(lookup_paths_free) LookupPaths lp = {}; @@ -2857,7 +2857,7 @@ int unit_file_reenable( UnitFileFlags flags, const char *root_dir, char **names_or_paths, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_(lookup_paths_free) LookupPaths lp = {}; @@ -2893,7 +2893,7 @@ int unit_file_set_default( UnitFileFlags flags, const char *root_dir, const char *name, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_(lookup_paths_free) LookupPaths lp = {}; @@ -3349,7 +3349,7 @@ static int execute_preset( const char *config_path, char **files, UnitFilePresetMode mode, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { int r; @@ -3396,7 +3396,7 @@ static int preset_prepare_one( LookupPaths *lp, const char *name, const UnitFilePresets *presets, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_(install_context_done) InstallContext tmp = { .scope = scope }; @@ -3448,7 +3448,7 @@ int unit_file_preset( const char *root_dir, char **names, UnitFilePresetMode mode, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_(install_context_done) InstallContext plus = {}, minus = {}; @@ -3487,7 +3487,7 @@ int unit_file_preset_all( UnitFileFlags file_flags, const char *root_dir, UnitFilePresetMode mode, - UnitFileChange **changes, + InstallChange **changes, size_t *n_changes) { _cleanup_(install_context_done) InstallContext plus = {}, minus = {}; @@ -3535,7 +3535,7 @@ int unit_file_preset_all( if (r < 0 && !IN_SET(r, -EEXIST, -ERFKILL, -EADDRNOTAVAIL, -EBADSLT, -EIDRM, -EUCLEAN, -ELOOP, -ENOENT, -EUNATCH, -EXDEV)) /* Ignore generated/transient/missing/invalid units when applying preset, propagate other errors. - * Coordinate with unit_file_dump_changes() above. */ + * Coordinate with install_changes_dump() above. */ return r; } } |