Remove dead code and unexport some calls
"make check-api-unused" informs us about code that is not used anymore or that is exported but only used internally. Fix these all over the place.
This commit is contained in:
parent
f842cd74ea
commit
9588bc3209
|
@ -155,7 +155,7 @@ _pure_ static const char *tty_path(const ExecContext *context) {
|
|||
return "/dev/console";
|
||||
}
|
||||
|
||||
void exec_context_tty_reset(const ExecContext *context) {
|
||||
static void exec_context_tty_reset(const ExecContext *context) {
|
||||
assert(context);
|
||||
|
||||
if (context->tty_vhangup)
|
||||
|
|
|
@ -194,7 +194,6 @@ void exec_context_init(ExecContext *c);
|
|||
void exec_context_done(ExecContext *c, bool reloading_or_reexecuting);
|
||||
void exec_context_tmp_dirs_done(ExecContext *c);
|
||||
void exec_context_dump(ExecContext *c, FILE* f, const char *prefix);
|
||||
void exec_context_tty_reset(const ExecContext *context);
|
||||
|
||||
int exec_context_load_environment(const ExecContext *c, char ***l);
|
||||
|
||||
|
|
|
@ -416,7 +416,7 @@ int job_type_merge_and_collapse(JobType *a, JobType b, Unit *u) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
bool job_is_runnable(Job *j) {
|
||||
static bool job_is_runnable(Job *j) {
|
||||
Iterator i;
|
||||
Unit *other;
|
||||
|
||||
|
|
|
@ -206,8 +206,6 @@ void job_type_collapse(JobType *t, Unit *u);
|
|||
|
||||
int job_type_merge_and_collapse(JobType *a, JobType b, Unit *u);
|
||||
|
||||
bool job_is_runnable(Job *j);
|
||||
|
||||
void job_add_to_run_queue(Job *j);
|
||||
void job_add_to_dbus_queue(Job *j);
|
||||
|
||||
|
|
|
@ -800,7 +800,7 @@ int manager_enumerate(Manager *m) {
|
|||
return r;
|
||||
}
|
||||
|
||||
int manager_coldplug(Manager *m) {
|
||||
static int manager_coldplug(Manager *m) {
|
||||
int r = 0, q;
|
||||
Iterator i;
|
||||
Unit *u;
|
||||
|
@ -880,6 +880,29 @@ fail:
|
|||
m->unit_path_cache = NULL;
|
||||
}
|
||||
|
||||
|
||||
static int manager_distribute_fds(Manager *m, FDSet *fds) {
|
||||
Unit *u;
|
||||
Iterator i;
|
||||
int r;
|
||||
|
||||
assert(m);
|
||||
|
||||
HASHMAP_FOREACH(u, m->units, i) {
|
||||
|
||||
if (fdset_size(fds) <= 0)
|
||||
break;
|
||||
|
||||
if (UNIT_VTABLE(u)->distribute_fds) {
|
||||
r = UNIT_VTABLE(u)->distribute_fds(u, fds);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int manager_startup(Manager *m, FILE *serialization, FDSet *fds) {
|
||||
int r, q;
|
||||
|
||||
|
@ -1187,7 +1210,7 @@ void manager_clear_jobs(Manager *m) {
|
|||
job_finish_and_invalidate(j, JOB_CANCELED, false);
|
||||
}
|
||||
|
||||
unsigned manager_dispatch_run_queue(Manager *m) {
|
||||
static unsigned manager_dispatch_run_queue(Manager *m) {
|
||||
Job *j;
|
||||
unsigned n = 0;
|
||||
|
||||
|
@ -1215,7 +1238,7 @@ unsigned manager_dispatch_run_queue(Manager *m) {
|
|||
return n;
|
||||
}
|
||||
|
||||
unsigned manager_dispatch_dbus_queue(Manager *m) {
|
||||
static unsigned manager_dispatch_dbus_queue(Manager *m) {
|
||||
Job *j;
|
||||
Unit *u;
|
||||
unsigned n = 0;
|
||||
|
@ -2298,28 +2321,6 @@ finish:
|
|||
return r;
|
||||
}
|
||||
|
||||
int manager_distribute_fds(Manager *m, FDSet *fds) {
|
||||
Unit *u;
|
||||
Iterator i;
|
||||
int r;
|
||||
|
||||
assert(m);
|
||||
|
||||
HASHMAP_FOREACH(u, m->units, i) {
|
||||
|
||||
if (fdset_size(fds) <= 0)
|
||||
break;
|
||||
|
||||
if (UNIT_VTABLE(u)->distribute_fds) {
|
||||
r = UNIT_VTABLE(u)->distribute_fds(u, fds);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int manager_reload(Manager *m) {
|
||||
int r, q;
|
||||
_cleanup_fclose_ FILE *f = NULL;
|
||||
|
|
|
@ -265,7 +265,6 @@ int manager_new(SystemdRunningAs running_as, bool reexecuting, Manager **m);
|
|||
void manager_free(Manager *m);
|
||||
|
||||
int manager_enumerate(Manager *m);
|
||||
int manager_coldplug(Manager *m);
|
||||
int manager_startup(Manager *m, FILE *serialization, FDSet *fds);
|
||||
|
||||
Job *manager_get_job(Manager *m, uint32_t id);
|
||||
|
@ -288,8 +287,6 @@ void manager_dump_jobs(Manager *s, FILE *f, const char *prefix);
|
|||
void manager_clear_jobs(Manager *m);
|
||||
|
||||
unsigned manager_dispatch_load_queue(Manager *m);
|
||||
unsigned manager_dispatch_run_queue(Manager *m);
|
||||
unsigned manager_dispatch_dbus_queue(Manager *m);
|
||||
|
||||
int manager_environment_add(Manager *m, char **environment);
|
||||
int manager_set_default_rlimits(Manager *m, struct rlimit **default_rlimit);
|
||||
|
@ -303,7 +300,6 @@ int manager_open_serialization(Manager *m, FILE **_f);
|
|||
|
||||
int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool switching_root);
|
||||
int manager_deserialize(Manager *m, FILE *f, FDSet *fds);
|
||||
int manager_distribute_fds(Manager *m, FDSet *fds);
|
||||
|
||||
int manager_reload(Manager *m);
|
||||
|
||||
|
|
100
src/core/unit.c
100
src/core/unit.c
|
@ -946,6 +946,44 @@ static int unit_add_default_dependencies(Unit *u) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int unit_add_mount_links(Unit *u) {
|
||||
char **i;
|
||||
int r;
|
||||
|
||||
assert(u);
|
||||
|
||||
STRV_FOREACH(i, u->requires_mounts_for) {
|
||||
char prefix[strlen(*i) + 1];
|
||||
|
||||
PATH_FOREACH_PREFIX_MORE(prefix, *i) {
|
||||
Unit *m;
|
||||
|
||||
r = manager_get_unit_by_path(u->manager, prefix, ".mount", &m);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r == 0)
|
||||
continue;
|
||||
if (m == u)
|
||||
continue;
|
||||
|
||||
if (m->load_state != UNIT_LOADED)
|
||||
continue;
|
||||
|
||||
r = unit_add_dependency(u, UNIT_AFTER, m, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (m->fragment_path) {
|
||||
r = unit_add_dependency(u, UNIT_REQUIRES, m, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int unit_load(Unit *u) {
|
||||
int r;
|
||||
|
||||
|
@ -1015,7 +1053,7 @@ fail:
|
|||
return r;
|
||||
}
|
||||
|
||||
bool unit_condition_test(Unit *u) {
|
||||
static bool unit_condition_test(Unit *u) {
|
||||
assert(u);
|
||||
|
||||
dual_timestamp_get(&u->condition_timestamp);
|
||||
|
@ -2118,28 +2156,6 @@ int unit_load_related_unit(Unit *u, const char *type, Unit **_found) {
|
|||
return r;
|
||||
}
|
||||
|
||||
int unit_get_related_unit(Unit *u, const char *type, Unit **_found) {
|
||||
_cleanup_free_ char *t = NULL;
|
||||
Unit *found;
|
||||
|
||||
assert(u);
|
||||
assert(type);
|
||||
assert(_found);
|
||||
|
||||
t = unit_name_change_suffix(u->id, type);
|
||||
if (!t)
|
||||
return -ENOMEM;
|
||||
|
||||
assert(!unit_has_name(u, t));
|
||||
|
||||
found = manager_get_unit(u->manager, t);
|
||||
if (!found)
|
||||
return -ENOENT;
|
||||
|
||||
*_found = found;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int unit_watch_bus_name(Unit *u, const char *name) {
|
||||
assert(u);
|
||||
assert(name);
|
||||
|
@ -2684,44 +2700,6 @@ void unit_ref_unset(UnitRef *ref) {
|
|||
ref->unit = NULL;
|
||||
}
|
||||
|
||||
int unit_add_mount_links(Unit *u) {
|
||||
char **i;
|
||||
int r;
|
||||
|
||||
assert(u);
|
||||
|
||||
STRV_FOREACH(i, u->requires_mounts_for) {
|
||||
char prefix[strlen(*i) + 1];
|
||||
|
||||
PATH_FOREACH_PREFIX_MORE(prefix, *i) {
|
||||
Unit *m;
|
||||
|
||||
r = manager_get_unit_by_path(u->manager, prefix, ".mount", &m);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r == 0)
|
||||
continue;
|
||||
if (m == u)
|
||||
continue;
|
||||
|
||||
if (m->load_state != UNIT_LOADED)
|
||||
continue;
|
||||
|
||||
r = unit_add_dependency(u, UNIT_AFTER, m, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (m->fragment_path) {
|
||||
r = unit_add_dependency(u, UNIT_REQUIRES, m, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int unit_exec_context_defaults(Unit *u, ExecContext *c) {
|
||||
unsigned i;
|
||||
int r;
|
||||
|
|
|
@ -545,7 +545,6 @@ int set_unit_path(const char *p);
|
|||
char *unit_dbus_path(Unit *u);
|
||||
|
||||
int unit_load_related_unit(Unit *u, const char *type, Unit **_found);
|
||||
int unit_get_related_unit(Unit *u, const char *type, Unit **_found);
|
||||
|
||||
bool unit_can_serialize(Unit *u) _pure_;
|
||||
int unit_serialize(Unit *u, FILE *f, FDSet *fds, bool serialize_jobs);
|
||||
|
@ -580,8 +579,6 @@ int unit_following_set(Unit *u, Set **s);
|
|||
void unit_start_on_failure(Unit *u);
|
||||
void unit_trigger_notify(Unit *u);
|
||||
|
||||
bool unit_condition_test(Unit *u);
|
||||
|
||||
UnitFileState unit_get_unit_file_state(Unit *u);
|
||||
|
||||
Unit* unit_ref_set(UnitRef *ref, Unit *u);
|
||||
|
@ -590,8 +587,6 @@ void unit_ref_unset(UnitRef *ref);
|
|||
#define UNIT_DEREF(ref) ((ref).unit)
|
||||
#define UNIT_ISSET(ref) (!!(ref).unit)
|
||||
|
||||
int unit_add_mount_links(Unit *u);
|
||||
|
||||
int unit_exec_context_defaults(Unit *u, ExecContext *c);
|
||||
|
||||
ExecContext *unit_get_exec_context(Unit *u) _pure_;
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
/* How many entries to keep in the entry array chain cache at max */
|
||||
#define CHAIN_CACHE_MAX 20
|
||||
|
||||
int journal_file_set_online(JournalFile *f) {
|
||||
static int journal_file_set_online(JournalFile *f) {
|
||||
assert(f);
|
||||
|
||||
if (!f->writable)
|
||||
|
|
|
@ -111,7 +111,6 @@ int journal_file_open(
|
|||
JournalFile **ret);
|
||||
|
||||
int journal_file_set_offline(JournalFile *f);
|
||||
int journal_file_set_online(JournalFile *f);
|
||||
void journal_file_close(JournalFile *j);
|
||||
|
||||
int journal_file_open_reliably(
|
||||
|
|
|
@ -28,7 +28,7 @@ static inline void set_bit(uint64_t filter[], unsigned b) {
|
|||
filter[b >> 6] |= 1ULL << (b & 63);
|
||||
}
|
||||
|
||||
void bloom_add_data(uint64_t filter[BLOOM_SIZE/8], const void *data, size_t n) {
|
||||
static void bloom_add_data(uint64_t filter[BLOOM_SIZE/8], const void *data, size_t n) {
|
||||
uint16_t hash[8];
|
||||
unsigned k = 0;
|
||||
|
||||
|
|
|
@ -25,6 +25,5 @@
|
|||
|
||||
#define BLOOM_SIZE 64
|
||||
|
||||
void bloom_add_data(uint64_t filter[BLOOM_SIZE/8], const void *data, size_t n);
|
||||
void bloom_add_pair(uint64_t filter[BLOOM_SIZE/8], const char *a, const char *b);
|
||||
void bloom_add_prefixes(uint64_t filter[BLOOM_SIZE/8], const char *a, const char *b, char sep);
|
||||
|
|
|
@ -54,18 +54,7 @@ Device* device_new(Manager *m, const char *sysfs, bool master) {
|
|||
return d;
|
||||
}
|
||||
|
||||
void device_free(Device *d) {
|
||||
assert(d);
|
||||
|
||||
device_detach(d);
|
||||
|
||||
hashmap_remove(d->manager->devices, d->sysfs);
|
||||
|
||||
free(d->sysfs);
|
||||
free(d);
|
||||
}
|
||||
|
||||
void device_detach(Device *d) {
|
||||
static void device_detach(Device *d) {
|
||||
Seat *s;
|
||||
SessionDevice *sd;
|
||||
|
||||
|
@ -87,6 +76,17 @@ void device_detach(Device *d) {
|
|||
}
|
||||
}
|
||||
|
||||
void device_free(Device *d) {
|
||||
assert(d);
|
||||
|
||||
device_detach(d);
|
||||
|
||||
hashmap_remove(d->manager->devices, d->sysfs);
|
||||
|
||||
free(d->sysfs);
|
||||
free(d);
|
||||
}
|
||||
|
||||
void device_attach(Device *d, Seat *s) {
|
||||
Device *i;
|
||||
bool had_master;
|
||||
|
|
|
@ -45,4 +45,3 @@ struct Device {
|
|||
Device* device_new(Manager *m, const char *sysfs, bool master);
|
||||
void device_free(Device *d);
|
||||
void device_attach(Device *d, Seat *s);
|
||||
void device_detach(Device *d);
|
||||
|
|
|
@ -177,7 +177,7 @@ void manager_free(Manager *m) {
|
|||
free(m);
|
||||
}
|
||||
|
||||
int manager_enumerate_devices(Manager *m) {
|
||||
static int manager_enumerate_devices(Manager *m) {
|
||||
struct udev_list_entry *item = NULL, *first = NULL;
|
||||
struct udev_enumerate *e;
|
||||
int r;
|
||||
|
@ -226,7 +226,7 @@ finish:
|
|||
return r;
|
||||
}
|
||||
|
||||
int manager_enumerate_buttons(Manager *m) {
|
||||
static int manager_enumerate_buttons(Manager *m) {
|
||||
struct udev_list_entry *item = NULL, *first = NULL;
|
||||
struct udev_enumerate *e;
|
||||
int r;
|
||||
|
@ -284,7 +284,7 @@ finish:
|
|||
return r;
|
||||
}
|
||||
|
||||
int manager_enumerate_seats(Manager *m) {
|
||||
static int manager_enumerate_seats(Manager *m) {
|
||||
_cleanup_closedir_ DIR *d = NULL;
|
||||
struct dirent *de;
|
||||
int r = 0;
|
||||
|
@ -357,7 +357,7 @@ static int manager_enumerate_linger_users(Manager *m) {
|
|||
return r;
|
||||
}
|
||||
|
||||
int manager_enumerate_users(Manager *m) {
|
||||
static int manager_enumerate_users(Manager *m) {
|
||||
_cleanup_closedir_ DIR *d = NULL;
|
||||
struct dirent *de;
|
||||
int r, k;
|
||||
|
@ -401,7 +401,7 @@ int manager_enumerate_users(Manager *m) {
|
|||
return r;
|
||||
}
|
||||
|
||||
int manager_enumerate_sessions(Manager *m) {
|
||||
static int manager_enumerate_sessions(Manager *m) {
|
||||
_cleanup_closedir_ DIR *d = NULL;
|
||||
struct dirent *de;
|
||||
int r = 0;
|
||||
|
@ -449,7 +449,7 @@ int manager_enumerate_sessions(Manager *m) {
|
|||
return r;
|
||||
}
|
||||
|
||||
int manager_enumerate_inhibitors(Manager *m) {
|
||||
static int manager_enumerate_inhibitors(Manager *m) {
|
||||
_cleanup_closedir_ DIR *d = NULL;
|
||||
struct dirent *de;
|
||||
int r = 0;
|
||||
|
|
|
@ -135,13 +135,6 @@ int manager_add_inhibitor(Manager *m, const char* id, Inhibitor **_inhibitor);
|
|||
int manager_process_seat_device(Manager *m, struct udev_device *d);
|
||||
int manager_process_button_device(Manager *m, struct udev_device *d);
|
||||
|
||||
int manager_enumerate_devices(Manager *m);
|
||||
int manager_enumerate_buttons(Manager *m);
|
||||
int manager_enumerate_seats(Manager *m);
|
||||
int manager_enumerate_sessions(Manager *m);
|
||||
int manager_enumerate_users(Manager *m);
|
||||
int manager_enumerate_inhibitors(Manager *m);
|
||||
|
||||
int manager_startup(Manager *m);
|
||||
int manager_run(Manager *m);
|
||||
int manager_spawn_autovt(Manager *m, int vtnr);
|
||||
|
|
|
@ -279,37 +279,6 @@ int cg_kill_recursive(const char *controller, const char *path, int sig, bool si
|
|||
return ret;
|
||||
}
|
||||
|
||||
int cg_kill_recursive_and_wait(const char *controller, const char *path, bool rem) {
|
||||
unsigned i;
|
||||
|
||||
assert(path);
|
||||
|
||||
/* This safely kills all processes; first it sends a SIGTERM,
|
||||
* then checks 8 times after 200ms whether the group is now
|
||||
* empty, then kills everything that is left with SIGKILL and
|
||||
* finally checks 5 times after 200ms each whether the group
|
||||
* is finally empty. */
|
||||
|
||||
for (i = 0; i < 15; i++) {
|
||||
int sig, r;
|
||||
|
||||
if (i <= 0)
|
||||
sig = SIGTERM;
|
||||
else if (i == 9)
|
||||
sig = SIGKILL;
|
||||
else
|
||||
sig = 0;
|
||||
|
||||
r = cg_kill_recursive(controller, path, sig, true, true, rem, NULL);
|
||||
if (r <= 0)
|
||||
return r;
|
||||
|
||||
usleep(200 * USEC_PER_MSEC);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cg_migrate(const char *cfrom, const char *pfrom, const char *cto, const char *pto, bool ignore_self) {
|
||||
bool done = false;
|
||||
_cleanup_set_free_ Set *s = NULL;
|
||||
|
@ -941,19 +910,6 @@ int cg_is_empty(const char *controller, const char *path, bool ignore_self) {
|
|||
return !found;
|
||||
}
|
||||
|
||||
int cg_is_empty_by_spec(const char *spec, bool ignore_self) {
|
||||
_cleanup_free_ char *controller = NULL, *path = NULL;
|
||||
int r;
|
||||
|
||||
assert(spec);
|
||||
|
||||
r = cg_split_spec(spec, &controller, &path);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
return cg_is_empty(controller, path, ignore_self);
|
||||
}
|
||||
|
||||
int cg_is_empty_recursive(const char *controller, const char *path, bool ignore_self) {
|
||||
_cleanup_closedir_ DIR *d = NULL;
|
||||
char *fn;
|
||||
|
@ -1080,33 +1036,6 @@ int cg_split_spec(const char *spec, char **controller, char **path) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int cg_join_spec(const char *controller, const char *path, char **spec) {
|
||||
char *s;
|
||||
|
||||
assert(path);
|
||||
|
||||
if (!controller)
|
||||
controller = "systemd";
|
||||
else {
|
||||
if (!cg_controller_is_valid(controller, true))
|
||||
return -EINVAL;
|
||||
|
||||
controller = normalize_controller(controller);
|
||||
}
|
||||
|
||||
if (!path_is_absolute(path))
|
||||
return -EINVAL;
|
||||
|
||||
s = strjoin(controller, ":", path, NULL);
|
||||
if (!s)
|
||||
return -ENOMEM;
|
||||
|
||||
path_kill_slashes(s + strlen(controller) + 1);
|
||||
|
||||
*spec = s;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cg_mangle_path(const char *path, char **result) {
|
||||
_cleanup_free_ char *c = NULL, *p = NULL;
|
||||
char *t;
|
||||
|
@ -1153,43 +1082,6 @@ int cg_get_root_path(char **path) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
char **cg_shorten_controllers(char **controllers) {
|
||||
char **f, **t;
|
||||
|
||||
if (!controllers)
|
||||
return controllers;
|
||||
|
||||
for (f = controllers, t = controllers; *f; f++) {
|
||||
const char *p;
|
||||
int r;
|
||||
|
||||
p = normalize_controller(*f);
|
||||
|
||||
if (streq(p, "systemd")) {
|
||||
free(*f);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!cg_controller_is_valid(p, true)) {
|
||||
log_warning("Controller %s is not valid, removing from controllers list.", p);
|
||||
free(*f);
|
||||
continue;
|
||||
}
|
||||
|
||||
r = check_hierarchy(p);
|
||||
if (r < 0) {
|
||||
log_debug("Controller %s is not available, removing from controllers list.", p);
|
||||
free(*f);
|
||||
continue;
|
||||
}
|
||||
|
||||
*(t++) = *f;
|
||||
}
|
||||
|
||||
*t = NULL;
|
||||
return strv_uniq(controllers);
|
||||
}
|
||||
|
||||
int cg_pid_get_path_shifted(pid_t pid, char **root, char **cgroup) {
|
||||
_cleanup_free_ char *cg_root = NULL;
|
||||
char *cg_process, *p;
|
||||
|
@ -1529,35 +1421,6 @@ int cg_pid_get_slice(pid_t pid, char **slice) {
|
|||
return cg_path_get_slice(cgroup, slice);
|
||||
}
|
||||
|
||||
int cg_controller_from_attr(const char *attr, char **controller) {
|
||||
const char *dot;
|
||||
char *c;
|
||||
|
||||
assert(attr);
|
||||
assert(controller);
|
||||
|
||||
if (!filename_is_safe(attr))
|
||||
return -EINVAL;
|
||||
|
||||
dot = strchr(attr, '.');
|
||||
if (!dot) {
|
||||
*controller = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
c = strndup(attr, dot - attr);
|
||||
if (!c)
|
||||
return -ENOMEM;
|
||||
|
||||
if (!cg_controller_is_valid(c, false)) {
|
||||
free(c);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
*controller = c;
|
||||
return 1;
|
||||
}
|
||||
|
||||
char *cg_escape(const char *p) {
|
||||
bool need_prefix = false;
|
||||
|
||||
|
|
|
@ -60,14 +60,12 @@ int cg_read_subgroup(DIR *d, char **fn);
|
|||
|
||||
int cg_kill(const char *controller, const char *path, int sig, bool sigcont, bool ignore_self, Set *s);
|
||||
int cg_kill_recursive(const char *controller, const char *path, int sig, bool sigcont, bool ignore_self, bool remove, Set *s);
|
||||
int cg_kill_recursive_and_wait(const char *controller, const char *path, bool remove);
|
||||
|
||||
int cg_migrate(const char *cfrom, const char *pfrom, const char *cto, const char *pto, bool ignore_self);
|
||||
int cg_migrate_recursive(const char *cfrom, const char *pfrom, const char *cto, const char *pto, bool ignore_self, bool remove);
|
||||
int cg_migrate_recursive_fallback(const char *cfrom, const char *pfrom, const char *cto, const char *pto, bool ignore_self, bool rem);
|
||||
|
||||
int cg_split_spec(const char *spec, char **controller, char **path);
|
||||
int cg_join_spec(const char *controller, const char *path, char **spec);
|
||||
int cg_mangle_path(const char *path, char **result);
|
||||
|
||||
int cg_get_path(const char *controller, const char *path, const char *suffix, char **fs);
|
||||
|
@ -94,7 +92,6 @@ int cg_install_release_agent(const char *controller, const char *agent);
|
|||
int cg_uninstall_release_agent(const char *controller);
|
||||
|
||||
int cg_is_empty(const char *controller, const char *path, bool ignore_self);
|
||||
int cg_is_empty_by_spec(const char *spec, bool ignore_self);
|
||||
int cg_is_empty_recursive(const char *controller, const char *path, bool ignore_self);
|
||||
|
||||
int cg_get_root_path(char **path);
|
||||
|
@ -117,10 +114,6 @@ int cg_pid_get_slice(pid_t pid, char **slice);
|
|||
|
||||
int cg_path_decode_unit(const char *cgroup, char **unit);
|
||||
|
||||
char **cg_shorten_controllers(char **controllers);
|
||||
|
||||
int cg_controller_from_attr(const char *attr, char **controller);
|
||||
|
||||
char *cg_escape(const char *p);
|
||||
char *cg_unescape(const char *p) _pure_;
|
||||
|
||||
|
|
|
@ -517,37 +517,6 @@ int config_parse_bool(const char* unit,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tristate(const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
const char *section,
|
||||
const char *lvalue,
|
||||
int ltype,
|
||||
const char *rvalue,
|
||||
void *data,
|
||||
void *userdata) {
|
||||
|
||||
int k;
|
||||
int *b = data;
|
||||
|
||||
assert(filename);
|
||||
assert(lvalue);
|
||||
assert(rvalue);
|
||||
assert(data);
|
||||
|
||||
/* Tristates are like booleans, but can also take the 'default' value, i.e. "-1" */
|
||||
|
||||
k = parse_boolean(rvalue);
|
||||
if (k < 0) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, -k,
|
||||
"Failed to parse boolean value, ignoring: %s", rvalue);
|
||||
return 0;
|
||||
}
|
||||
|
||||
*b = !!k;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_string(const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
|
|
|
@ -99,7 +99,6 @@ int config_parse_double(const char *unit, const char *filename, unsigned line, c
|
|||
int config_parse_bytes_size(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
int config_parse_bytes_off(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
int config_parse_bool(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
int config_parse_tristate(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
int config_parse_string(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
int config_parse_path(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
int config_parse_strv(const char *unit, const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
|
||||
|
|
|
@ -2924,11 +2924,13 @@ int fchmod_and_fchown(int fd, mode_t mode, uid_t uid, gid_t gid) {
|
|||
* first change the access mode and only then hand out
|
||||
* ownership to avoid a window where access is too open. */
|
||||
|
||||
if (fchmod(fd, mode) < 0)
|
||||
return -errno;
|
||||
if (mode != (mode_t) -1)
|
||||
if (fchmod(fd, mode) < 0)
|
||||
return -errno;
|
||||
|
||||
if (fchown(fd, uid, gid) < 0)
|
||||
return -errno;
|
||||
if (uid != (uid_t) -1 || gid != (gid_t) -1)
|
||||
if (fchown(fd, uid, gid) < 0)
|
||||
return -errno;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -3040,13 +3042,14 @@ int status_printf(const char *status, bool ellipse, bool ephemeral, const char *
|
|||
}
|
||||
|
||||
int status_welcome(void) {
|
||||
int r;
|
||||
_cleanup_free_ char *pretty_name = NULL, *ansi_color = NULL;
|
||||
int r;
|
||||
|
||||
r = parse_env_file("/etc/os-release", NEWLINE,
|
||||
"PRETTY_NAME", &pretty_name,
|
||||
"ANSI_COLOR", &ansi_color,
|
||||
NULL);
|
||||
|
||||
if (r < 0 && r != -ENOENT)
|
||||
log_warning("Failed to read /etc/os-release: %s", strerror(-r));
|
||||
|
||||
|
@ -3700,8 +3703,7 @@ char *resolve_dev_console(char **active) {
|
|||
}
|
||||
|
||||
bool tty_is_vc_resolve(const char *tty) {
|
||||
char *active = NULL;
|
||||
bool b;
|
||||
_cleanup_free_ char *active = NULL;
|
||||
|
||||
assert(tty);
|
||||
|
||||
|
@ -3714,10 +3716,7 @@ bool tty_is_vc_resolve(const char *tty) {
|
|||
return false;
|
||||
}
|
||||
|
||||
b = tty_is_vc(tty);
|
||||
free(active);
|
||||
|
||||
return b;
|
||||
return tty_is_vc(tty);
|
||||
}
|
||||
|
||||
const char *default_term_for_tty(const char *tty) {
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
#include "udev.h"
|
||||
#include "log.h"
|
||||
|
||||
link_config_ctx *ctx;
|
||||
static link_config_ctx *ctx = NULL;
|
||||
|
||||
static int builtin_net_setup_link(struct udev_device *dev, int argc, char **argv, bool test) {
|
||||
const char *name;
|
||||
|
|
Loading…
Reference in New Issue