chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add set_consume which always takes ownership
[elogind.git]
/
src
/
shared
/
install.c
diff --git
a/src/shared/install.c
b/src/shared/install.c
index 71e04335ef57371cd84d2c661ae419759fbaac3d..b22019d7b5ddcb24ca9a7967c9280de2d9fa2444 100644
(file)
--- a/
src/shared/install.c
+++ b/
src/shared/install.c
@@
-178,11
+178,9
@@
static int mark_symlink_for_removal(
path_kill_slashes(n);
path_kill_slashes(n);
- r = set_put(*remove_symlinks_to, n);
- if (r < 0) {
- free(n);
+ r = set_consume(*remove_symlinks_to, n);
+ if (r < 0)
return r == -EEXIST ? 0 : r;
return r == -EEXIST ? 0 : r;
- }
return 0;
}
return 0;
}
@@
-198,7
+196,7
@@
static int remove_marked_symlinks_fd(
char** files) {
int r = 0;
char** files) {
int r = 0;
-
DIR _cleanup_closedir_
*d = NULL;
+
_cleanup_closedir_ DIR
*d = NULL;
assert(remove_symlinks_to);
assert(fd >= 0);
assert(remove_symlinks_to);
assert(fd >= 0);
@@
-235,7
+233,7
@@
static int remove_marked_symlinks_fd(
if (de->d_type == DT_DIR) {
int nfd, q;
if (de->d_type == DT_DIR) {
int nfd, q;
-
char _cleanup_free_
*p = NULL;
+
_cleanup_free_ char
*p = NULL;
nfd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW);
if (nfd < 0) {
nfd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW);
if (nfd < 0) {
@@
-260,7
+258,7
@@
static int remove_marked_symlinks_fd(
r = q;
} else if (de->d_type == DT_LNK) {
r = q;
} else if (de->d_type == DT_LNK) {
-
char _cleanup_free_
*p = NULL, *dest = NULL;
+
_cleanup_free_ char
*p = NULL, *dest = NULL;
int q;
bool found;
int q;
bool found;
@@
-362,7
+360,7
@@
static int find_symlinks_fd(
bool *same_name_link) {
int r = 0;
bool *same_name_link) {
int r = 0;
-
DIR _cleanup_closedir_
*d = NULL;
+
_cleanup_closedir_ DIR
*d = NULL;
assert(name);
assert(fd >= 0);
assert(name);
assert(fd >= 0);
@@
-395,7
+393,7
@@
static int find_symlinks_fd(
if (de->d_type == DT_DIR) {
int nfd, q;
if (de->d_type == DT_DIR) {
int nfd, q;
-
char _cleanup_free_
*p = NULL;
+
_cleanup_free_ char
*p = NULL;
nfd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW);
if (nfd < 0) {
nfd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW);
if (nfd < 0) {
@@
-423,7
+421,7
@@
static int find_symlinks_fd(
r = q;
} else if (de->d_type == DT_LNK) {
r = q;
} else if (de->d_type == DT_LNK) {
-
char _cleanup_free_
*p = NULL, *dest = NULL;
+
_cleanup_free_ char
*p = NULL, *dest = NULL;
bool found_path, found_dest, b = false;
int q;
bool found_path, found_dest, b = false;
int q;
@@
-458,7
+456,7
@@
static int find_symlinks_fd(
found_dest = streq(path_get_file_name(dest), name);
if (found_path && found_dest) {
found_dest = streq(path_get_file_name(dest), name);
if (found_path && found_dest) {
-
char _cleanup_free_
*t = NULL;
+
_cleanup_free_ char
*t = NULL;
/* Filter out same name links in the main
* config path */
/* Filter out same name links in the main
* config path */
@@
-508,7
+506,7
@@
static int find_symlinks_in_scope(
UnitFileState *state) {
int r;
UnitFileState *state) {
int r;
-
char _cleanup_free_
*path = NULL;
+
_cleanup_free_ char
*path = NULL;
bool same_name_link_runtime = false, same_name_link = false;
assert(scope >= 0);
bool same_name_link_runtime = false, same_name_link = false;
assert(scope >= 0);
@@
-567,7
+565,7
@@
int unit_file_mask(
unsigned *n_changes) {
char **i;
unsigned *n_changes) {
char **i;
-
char _cleanup_free_
*prefix;
+
_cleanup_free_ char
*prefix;
int r;
assert(scope >= 0);
int r;
assert(scope >= 0);
@@
-578,7
+576,7
@@
int unit_file_mask(
return r;
STRV_FOREACH(i, files) {
return r;
STRV_FOREACH(i, files) {
-
char _cleanup_free_
*path = NULL;
+
_cleanup_free_ char
*path = NULL;
if (!unit_name_is_valid(*i, true)) {
if (r == 0)
if (!unit_name_is_valid(*i, true)) {
if (r == 0)
@@
-700,9
+698,9
@@
int unit_file_link(
UnitFileChange **changes,
unsigned *n_changes) {
UnitFileChange **changes,
unsigned *n_changes) {
-
LookupPaths _cleanup_lookup_paths_free_
paths = {};
+
_cleanup_lookup_paths_free_ LookupPaths
paths = {};
char **i;
char **i;
-
char _cleanup_free_
*config_path = NULL;
+
_cleanup_free_ char
*config_path = NULL;
int r, q;
assert(scope >= 0);
int r, q;
assert(scope >= 0);
@@
-717,7
+715,7
@@
int unit_file_link(
return r;
STRV_FOREACH(i, files) {
return r;
STRV_FOREACH(i, files) {
-
char _cleanup_free_
*path = NULL;
+
_cleanup_free_ char
*path = NULL;
char *fn;
struct stat st;
char *fn;
struct stat st;
@@
-758,7
+756,7
@@
int unit_file_link(
}
if (errno == EEXIST) {
}
if (errno == EEXIST) {
-
char _cleanup_free_
*dest = NULL;
+
_cleanup_free_ char
*dest = NULL;
q = readlink_and_make_absolute(path, &dest);
q = readlink_and_make_absolute(path, &dest);
@@
-921,15
+919,15
@@
static int install_info_add_auto(
return install_info_add(c, name_or_path, NULL);
}
return install_info_add(c, name_or_path, NULL);
}
-static int config_parse_also(
- const char *filename,
- unsigned line,
- const char *section,
- const char *lvalue,
- int ltype,
- const char *rvalue,
- void *data,
- void *userdata) {
+static int config_parse_also(
const char *unit,
+
const char *filename,
+
unsigned line,
+
const char *section,
+
const char *lvalue,
+
int ltype,
+
const char *rvalue,
+
void *data,
+
void *userdata) {
char *w;
size_t l;
char *w;
size_t l;
@@
-941,7
+939,7
@@
static int config_parse_also(
assert(rvalue);
FOREACH_WORD_QUOTED(w, l, rvalue, state) {
assert(rvalue);
FOREACH_WORD_QUOTED(w, l, rvalue, state) {
-
char _cleanup_free_
*n;
+
_cleanup_free_ char
*n;
int r;
n = strndup(w, l);
int r;
n = strndup(w, l);
@@
-956,15
+954,15
@@
static int config_parse_also(
return 0;
}
return 0;
}
-static int config_parse_user(
- const char *filename,
- unsigned line,
- const char *section,
- const char *lvalue,
- int ltype,
- const char *rvalue,
- void *data,
- void *userdata) {
+static int config_parse_user(
const char *unit,
+
const char *filename,
+
unsigned line,
+
const char *section,
+
const char *lvalue,
+
int ltype,
+
const char *rvalue,
+
void *data,
+
void *userdata) {
InstallInfo *i = data;
char* printed;
InstallInfo *i = data;
char* printed;
@@
-999,7
+997,7
@@
static int unit_file_load(
};
int fd;
};
int fd;
-
FILE _cleanup_fclose_
*f = NULL;
+
_cleanup_fclose_ FILE
*f = NULL;
int r;
assert(c);
int r;
assert(c);
@@
-1016,7
+1014,8
@@
static int unit_file_load(
return -ENOMEM;
}
return -ENOMEM;
}
- r = config_parse(path, f, NULL, config_item_table_lookup, (void*) items, true, info);
+ r = config_parse(NULL, path, f, NULL,
+ config_item_table_lookup, (void*) items, true, info);
if (r < 0)
return r;
if (r < 0)
return r;
@@
-1116,7
+1115,7
@@
static int unit_file_can_install(
const char *name,
bool allow_symlink) {
const char *name,
bool allow_symlink) {
-
InstallContext _cleanup_install_context_done_
c = {};
+
_cleanup_install_context_done_ InstallContext
c = {};
InstallInfo *i;
int r;
InstallInfo *i;
int r;
@@
-1147,7
+1146,7
@@
static int create_symlink(
UnitFileChange **changes,
unsigned *n_changes) {
UnitFileChange **changes,
unsigned *n_changes) {
-
char _cleanup_free_
*dest = NULL;
+
_cleanup_free_ char
*dest = NULL;
int r;
assert(old_path);
int r;
assert(old_path);
@@
-1198,7
+1197,7
@@
static int install_info_symlink_alias(
assert(config_path);
STRV_FOREACH(s, i->aliases) {
assert(config_path);
STRV_FOREACH(s, i->aliases) {
-
char _cleanup_free_
*alias_path = NULL, *dst = NULL;
+
_cleanup_free_ char
*alias_path = NULL, *dst = NULL;
dst = install_full_printf(i, *s);
if (!dst)
dst = install_full_printf(i, *s);
if (!dst)
@@
-1230,7
+1229,7
@@
static int install_info_symlink_wants(
assert(config_path);
STRV_FOREACH(s, i->wanted_by) {
assert(config_path);
STRV_FOREACH(s, i->wanted_by) {
-
char _cleanup_free_
*path = NULL, *dst = NULL;
+
_cleanup_free_ char
*path = NULL, *dst = NULL;
dst = install_full_printf(i, *s);
if (!dst)
dst = install_full_printf(i, *s);
if (!dst)
@@
-1267,7
+1266,7
@@
static int install_info_symlink_requires(
assert(config_path);
STRV_FOREACH(s, i->required_by) {
assert(config_path);
STRV_FOREACH(s, i->required_by) {
-
char _cleanup_free_
*path = NULL, *dst = NULL;
+
_cleanup_free_ char
*path = NULL, *dst = NULL;
dst = install_full_printf(i, *s);
if (!dst)
dst = install_full_printf(i, *s);
if (!dst)
@@
-1299,7
+1298,7
@@
static int install_info_symlink_link(
unsigned *n_changes) {
int r;
unsigned *n_changes) {
int r;
-
char _cleanup_free_
*path = NULL;
+
_cleanup_free_ char
*path = NULL;
assert(i);
assert(paths);
assert(i);
assert(paths);
@@
-1452,10
+1451,10
@@
int unit_file_enable(
UnitFileChange **changes,
unsigned *n_changes) {
UnitFileChange **changes,
unsigned *n_changes) {
-
LookupPaths _cleanup_lookup_paths_free_
paths = {};
-
InstallContext _cleanup_install_context_done_
c = {};
+
_cleanup_lookup_paths_free_ LookupPaths
paths = {};
+
_cleanup_install_context_done_ InstallContext
c = {};
char **i;
char **i;
-
char _cleanup_free_
*config_path = NULL;
+
_cleanup_free_ char
*config_path = NULL;
int r;
assert(scope >= 0);
int r;
assert(scope >= 0);
@@
-1491,11
+1490,11
@@
int unit_file_disable(
UnitFileChange **changes,
unsigned *n_changes) {
UnitFileChange **changes,
unsigned *n_changes) {
-
LookupPaths _cleanup_lookup_paths_free_
paths = {};
-
InstallContext _cleanup_install_context_done_
c = {};
+
_cleanup_lookup_paths_free_ LookupPaths
paths = {};
+
_cleanup_install_context_done_ InstallContext
c = {};
char **i;
char **i;
-
char _cleanup_free_
*config_path = NULL;
-
Set _cleanup_set_free_free_
*remove_symlinks_to = NULL;
+
_cleanup_free_ char
*config_path = NULL;
+
_cleanup_set_free_free_ Set
*remove_symlinks_to = NULL;
int r, q;
assert(scope >= 0);
int r, q;
assert(scope >= 0);
@@
-1533,11
+1532,11
@@
int unit_file_reenable(
UnitFileChange **changes,
unsigned *n_changes) {
UnitFileChange **changes,
unsigned *n_changes) {
-
LookupPaths _cleanup_lookup_paths_free_
paths = {};
-
InstallContext _cleanup_install_context_done_
c = {};
+
_cleanup_lookup_paths_free_ LookupPaths
paths = {};
+
_cleanup_install_context_done_ InstallContext
c = {};
char **i;
char **i;
-
char _cleanup_free_
*config_path = NULL;
-
Set _cleanup_set_free_free_
*remove_symlinks_to = NULL;
+
_cleanup_free_ char
*config_path = NULL;
+
_cleanup_set_free_free_ Set
*remove_symlinks_to = NULL;
int r, q;
assert(scope >= 0);
int r, q;
assert(scope >= 0);
@@
-1576,10
+1575,10
@@
UnitFileState unit_file_get_state(
const char *root_dir,
const char *name) {
const char *root_dir,
const char *name) {
-
LookupPaths _cleanup_lookup_paths_free_
paths = {};
+
_cleanup_lookup_paths_free_ LookupPaths
paths = {};
UnitFileState state = _UNIT_FILE_STATE_INVALID;
char **i;
UnitFileState state = _UNIT_FILE_STATE_INVALID;
char **i;
-
char _cleanup_free_
*path = NULL;
+
_cleanup_free_ char
*path = NULL;
int r;
assert(scope >= 0);
int r;
assert(scope >= 0);
@@
-1649,7
+1648,7
@@
UnitFileState unit_file_get_state(
}
int unit_file_query_preset(UnitFileScope scope, const char *name) {
}
int unit_file_query_preset(UnitFileScope scope, const char *name) {
-
char _cleanup_strv_free_
**files = NULL;
+
_cleanup_strv_free_ char
**files = NULL;
char **i;
int r;
char **i;
int r;
@@
-1679,7
+1678,7
@@
int unit_file_query_preset(UnitFileScope scope, const char *name) {
return r;
STRV_FOREACH(i, files) {
return r;
STRV_FOREACH(i, files) {
-
FILE _cleanup_fclose_
*f;
+
_cleanup_fclose_ FILE
*f;
f = fopen(*i, "re");
if (!f) {
f = fopen(*i, "re");
if (!f) {
@@
-1734,11
+1733,11
@@
int unit_file_preset(
UnitFileChange **changes,
unsigned *n_changes) {
UnitFileChange **changes,
unsigned *n_changes) {
-
LookupPaths _cleanup_lookup_paths_free_
paths = {};
-
InstallContext _cleanup_install_context_done_
plus = {}, minus = {};
+
_cleanup_lookup_paths_free_ LookupPaths
paths = {};
+
_cleanup_install_context_done_ InstallContext
plus = {}, minus = {};
char **i;
char **i;
-
char _cleanup_free_
*config_path = NULL;
-
Set _cleanup_set_free_free_
*remove_symlinks_to = NULL;
+
_cleanup_free_ char
*config_path = NULL;
+
_cleanup_set_free_free_ Set
*remove_symlinks_to = NULL;
int r, q;
assert(scope >= 0);
int r, q;
assert(scope >= 0);
@@
-1800,10
+1799,10
@@
int unit_file_get_list(
const char *root_dir,
Hashmap *h) {
const char *root_dir,
Hashmap *h) {
-
LookupPaths _cleanup_lookup_paths_free_
paths = {};
+
_cleanup_lookup_paths_free_ LookupPaths
paths = {};
char **i;
char **i;
-
char _cleanup_free_
*buf = NULL;
-
DIR _cleanup_closedir_
*d = NULL;
+
_cleanup_free_ char
*buf = NULL;
+
_cleanup_closedir_ DIR
*d = NULL;
int r;
assert(scope >= 0);
int r;
assert(scope >= 0);