mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-05 09:17:44 +03:00
parent
ac24e418d9
commit
162392b75a
@ -82,7 +82,7 @@ enum {
|
||||
CHASE_SAFE = 1 << 3, /* Return EPERM if we ever traverse from unprivileged to privileged files or directories */
|
||||
CHASE_TRAIL_SLASH = 1 << 4, /* Any trailing slash will be preserved */
|
||||
CHASE_STEP = 1 << 5, /* Just execute a single step of the normalization */
|
||||
CHASE_NOFOLLOW = 1 << 6, /* Do not follow the path's right-most compontent. With ret_fd, when the path's
|
||||
CHASE_NOFOLLOW = 1 << 6, /* Do not follow the path's right-most component. With ret_fd, when the path's
|
||||
* right-most component refers to symlink, return O_PATH fd of the symlink. */
|
||||
CHASE_WARN = 1 << 7, /* Emit an appropriate warning when an error is encountered */
|
||||
};
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
/* The enum order is used to order unit jobs in the job queue
|
||||
* when other criteria (cpu weight, nice level) are identical.
|
||||
* In this case service units have the hightest priority. */
|
||||
* In this case service units have the highest priority. */
|
||||
typedef enum UnitType {
|
||||
UNIT_SERVICE = 0,
|
||||
UNIT_MOUNT,
|
||||
|
@ -1435,7 +1435,7 @@ static int install_random_seed(const char *esp) {
|
||||
* the EFI variable space we can make sure that even though the random seeds on disk
|
||||
* are all the same they will be different on each system under the assumption that
|
||||
* the EFI variable space is maintained separate from the random seed storage. That
|
||||
* is generally the case on physical systems, as the ESP is stored on persistant
|
||||
* is generally the case on physical systems, as the ESP is stored on persistent
|
||||
* storage, and the EFI variables in NVRAM. However in virtualized environments this
|
||||
* is generally not true: the EFI variable set is typically stored along with the
|
||||
* disk image itself. For example, using the OVMF EFI firmware the EFI variables are
|
||||
|
@ -1054,7 +1054,7 @@ int job_finish_and_invalidate(Job *j, JobResult result, bool recursive, bool alr
|
||||
* aren't active. This is when the verify-active job merges with a
|
||||
* satisfying job type, and then loses it's invalidation effect, as the
|
||||
* result there is JOB_DONE for the start job we merged into, while we
|
||||
* should be failing the depending job if the said unit isn't infact
|
||||
* should be failing the depending job if the said unit isn't in fact
|
||||
* active. Oneshots are an example of this, where going directly from
|
||||
* activating to inactive is success.
|
||||
*
|
||||
|
@ -95,7 +95,7 @@ static enum {
|
||||
ACTION_DUMP_BUS_PROPERTIES,
|
||||
} arg_action = ACTION_RUN;
|
||||
|
||||
/* Those variables are initalized to 0 automatically, so we avoid uninitialized memory access.
|
||||
/* Those variables are initialized to 0 automatically, so we avoid uninitialized memory access.
|
||||
* Real defaults are assigned in reset_arguments() below. */
|
||||
static char *arg_default_unit;
|
||||
static bool arg_system;
|
||||
@ -479,7 +479,7 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat
|
||||
|
||||
r = parse_cpu_set(value, &arg_cpu_affinity);
|
||||
if (r < 0)
|
||||
log_warning_errno(r, "Faile to parse CPU affinity mask '%s', ignoring: %m", value);
|
||||
log_warning_errno(r, "Failed to parse CPU affinity mask '%s', ignoring: %m", value);
|
||||
|
||||
} else if (proc_cmdline_key_streq(key, "systemd.watchdog_device")) {
|
||||
|
||||
|
@ -655,7 +655,7 @@ static void service_fix_stdio(Service *s) {
|
||||
|
||||
/* Note that EXEC_INPUT_NULL and EXEC_OUTPUT_INHERIT play a special role here: they are both the
|
||||
* default value that is subject to automatic overriding triggered by other settings and an explicit
|
||||
* choice the user can make. We don't distuingish between these cases currently. */
|
||||
* choice the user can make. We don't distinguish between these cases currently. */
|
||||
|
||||
if (s->exec_context.std_input == EXEC_INPUT_NULL &&
|
||||
s->exec_context.stdin_data_size > 0)
|
||||
|
@ -7,7 +7,7 @@
|
||||
# the Free Software Foundation; either version 2.1 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# Names with prefixes are prefered, and the run-together names should be
|
||||
# Names with prefixes are preferred, and the run-together names should be
|
||||
# considered deprecated (though there is no plan to remove them). New names
|
||||
# shall have underscores.
|
||||
|
||||
|
@ -2170,7 +2170,7 @@ static int unit_log_resources(Unit *u) {
|
||||
struct iovec iovec[1 + _CGROUP_IP_ACCOUNTING_METRIC_MAX + _CGROUP_IO_ACCOUNTING_METRIC_MAX + 4];
|
||||
bool any_traffic = false, have_ip_accounting = false, any_io = false, have_io_accounting = false;
|
||||
_cleanup_free_ char *igress = NULL, *egress = NULL, *rr = NULL, *wr = NULL;
|
||||
int log_level = LOG_DEBUG; /* May be raised if resources consumed over a treshold */
|
||||
int log_level = LOG_DEBUG; /* May be raised if resources consumed over a threshold */
|
||||
size_t n_message_parts = 0, n_iovec = 0;
|
||||
char* message_parts[1 + 2 + 2 + 1], *t;
|
||||
nsec_t nsec = NSEC_INFINITY;
|
||||
|
@ -202,7 +202,7 @@ static int print_dependencies(FILE *f, const char* device_path) {
|
||||
return 0;
|
||||
|
||||
if (path_startswith(udev_node, "/dev/")) {
|
||||
/* We are dealing with a block device, add dependency for correspoding unit */
|
||||
/* We are dealing with a block device, add dependency for corresponding unit */
|
||||
_cleanup_free_ char *unit = NULL;
|
||||
|
||||
r = unit_name_from_path(udev_node, ".device", &unit);
|
||||
|
@ -2767,7 +2767,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
|
||||
r = json_variant_set_field(&arg_identity_extra, "environment", ne);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to set environent list: %m");
|
||||
return log_error_errno(r, "Failed to set environment list: %m");
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -436,9 +436,9 @@ static int convert_worker_errno(Home *h, int e, sd_bus_error *error) {
|
||||
switch (e) {
|
||||
|
||||
case -EMSGSIZE:
|
||||
return sd_bus_error_setf(error, BUS_ERROR_BAD_HOME_SIZE, "File systems of this type cannot be shrinked");
|
||||
return sd_bus_error_setf(error, BUS_ERROR_BAD_HOME_SIZE, "File systems of this type cannot be shrunk");
|
||||
case -ETXTBSY:
|
||||
return sd_bus_error_setf(error, BUS_ERROR_BAD_HOME_SIZE, "File systems of this type can only be shrinked offline");
|
||||
return sd_bus_error_setf(error, BUS_ERROR_BAD_HOME_SIZE, "File systems of this type can only be shrunk offline");
|
||||
case -ERANGE:
|
||||
return sd_bus_error_setf(error, BUS_ERROR_BAD_HOME_SIZE, "File system size too small");
|
||||
case -ENOLINK:
|
||||
@ -1748,7 +1748,7 @@ void home_process_notify(Home *h, char **l) {
|
||||
|
||||
r = safe_atoi(e, &error);
|
||||
if (r < 0) {
|
||||
log_debug_errno(r, "Failed to parse receieved error number, ignoring: %s", e);
|
||||
log_debug_errno(r, "Failed to parse received error number, ignoring: %s", e);
|
||||
return;
|
||||
}
|
||||
if (error <= 0) {
|
||||
|
@ -611,7 +611,7 @@ const sd_bus_vtable manager_vtable[] = {
|
||||
SD_BUS_METHOD("GetUserRecordByUID", "u", "sbo", method_get_user_record_by_uid, SD_BUS_VTABLE_UNPRIVILEGED|SD_BUS_VTABLE_SENSITIVE),
|
||||
SD_BUS_METHOD("ListHomes", NULL, "a(susussso)", method_list_homes, SD_BUS_VTABLE_UNPRIVILEGED),
|
||||
|
||||
/* The following methods directly execute an operation on a home area, without ref-counting, queing
|
||||
/* The following methods directly execute an operation on a home area, without ref-counting, queueing
|
||||
* or anything, and are accessible through homectl. */
|
||||
SD_BUS_METHOD("ActivateHome", "ss", NULL, method_activate_home, SD_BUS_VTABLE_SENSITIVE),
|
||||
SD_BUS_METHOD("DeactivateHome", "s", NULL, method_deactivate_home, 0),
|
||||
|
@ -367,7 +367,7 @@ static int manager_add_home_by_record(
|
||||
|
||||
/* If we acquired a record now for a previously unallocated entry, then reset the state. This
|
||||
* makes sure home_get_state() will check for the availability of the image file dynamically
|
||||
* in order to detect to distuingish HOME_INACTIVE and HOME_ABSENT. */
|
||||
* in order to detect to distinguish HOME_INACTIVE and HOME_ABSENT. */
|
||||
if (h->state == HOME_UNFIXATED)
|
||||
h->state = _HOME_STATE_INVALID;
|
||||
} else {
|
||||
@ -1042,7 +1042,7 @@ static int on_notify_socket(sd_event_source *s, int fd, uint32_t revents, void *
|
||||
|
||||
h = hashmap_get(m->homes_by_worker_pid, PID_TO_PTR(sender.pid));
|
||||
if (!h) {
|
||||
log_warning("Recieved notify datagram of unknown process, ignoring.");
|
||||
log_warning("Received notify datagram of unknown process, ignoring.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1656,7 +1656,7 @@ int manager_enqueue_gc(Manager *m, Home *focus) {
|
||||
|
||||
return 0;
|
||||
} else
|
||||
m->gc_focus = focus; /* start focussed */
|
||||
m->gc_focus = focus; /* start focused */
|
||||
|
||||
r = sd_event_add_defer(m->event, &m->deferred_gc_event_source, on_deferred_gc, m);
|
||||
if (r < 0)
|
||||
|
@ -31,7 +31,7 @@ struct Manager {
|
||||
|
||||
sd_event_source *inotify_event_source;
|
||||
|
||||
/* An even source we receieve sd_notify() messages from our worker from */
|
||||
/* An event source we receive sd_notify() messages from our worker from */
|
||||
sd_event_source *notify_socket_event_source;
|
||||
|
||||
sd_device_monitor *device_monitor;
|
||||
|
@ -1401,8 +1401,8 @@ static int run(int argc, char *argv[]) {
|
||||
|
||||
/* Well known return values of these operations, that systemd-homed knows and converts to proper D-Bus errors:
|
||||
*
|
||||
* EMSGSIZE → file systems of this type cannnot be shrinked
|
||||
* ETXTBSY → file systems of this type can only be shrinked offline
|
||||
* EMSGSIZE → file systems of this type cannot be shrunk
|
||||
* ETXTBSY → file systems of this type can only be shrunk offline
|
||||
* ERANGE → file system size too small
|
||||
* ENOLINK → system does not support selected storage backend
|
||||
* EPROTONOSUPPORT → system does not support selected file system
|
||||
|
@ -460,7 +460,7 @@ int user_record_test_image_path(UserRecord *h) {
|
||||
if (S_ISBLK(st.st_mode)) {
|
||||
/* For block devices we can't really be sure if the device referenced actually is the
|
||||
* fs we look for or some other file system (think: what does /dev/sdb1 refer
|
||||
* to?). Hence, let's return USER_TEST_MAYBE as an ambigious return value for these
|
||||
* to?). Hence, let's return USER_TEST_MAYBE as an ambiguous return value for these
|
||||
* case, except if the device path used is one of the paths that is based on a
|
||||
* filesystem or partition UUID or label, because in those cases we can be sure we
|
||||
* are referring to the right device. */
|
||||
|
@ -423,7 +423,7 @@ int server_open_kernel_seqnum(Server *s) {
|
||||
|
||||
assert(s);
|
||||
|
||||
/* We store the seqnum we last read in an mmaped file. That way we can just use it like a variable,
|
||||
/* We store the seqnum we last read in an mmapped file. That way we can just use it like a variable,
|
||||
* but it is persistent and automatically flushed at reboot. */
|
||||
|
||||
if (!s->read_kmsg)
|
||||
|
@ -1950,7 +1950,7 @@ static int vl_method_synchronize(Varlink *link, JsonVariant *parameters, Varlink
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to set event source destroy callback: %m");
|
||||
|
||||
varlink_ref(link); /* The varlink object is now left to the destroy callack to unref */
|
||||
varlink_ref(link); /* The varlink object is now left to the destroy callback to unref */
|
||||
|
||||
r = sd_event_source_set_priority(event_source, SD_EVENT_PRIORITY_NORMAL+15);
|
||||
if (r < 0)
|
||||
|
@ -46,7 +46,7 @@ static void message_free_part(sd_bus_message *m, struct bus_body_part *part) {
|
||||
assert(part);
|
||||
|
||||
if (part->memfd >= 0) {
|
||||
/* erase if requested, but ony if the memfd is not sealed yet, i.e. is writable */
|
||||
/* erase if requested, but only if the memfd is not sealed yet, i.e. is writable */
|
||||
if (m->sensitive && !m->sealed)
|
||||
explicit_bzero_safe(part->data, part->size);
|
||||
|
||||
|
@ -774,7 +774,7 @@ static int vtable_append_all_properties(
|
||||
if (v->flags & SD_BUS_VTABLE_HIDDEN)
|
||||
continue;
|
||||
|
||||
/* Let's not include properties marked as "explicit" in any message that contians a generic
|
||||
/* Let's not include properties marked as "explicit" in any message that contains a generic
|
||||
* dump of properties, but only in those generated as a response to an explicit request. */
|
||||
if (v->flags & SD_BUS_VTABLE_PROPERTY_EXPLICIT)
|
||||
continue;
|
||||
|
@ -4930,7 +4930,7 @@ static int run(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
/* We take an exclusive lock on this image, since it's our private, ephemeral copy
|
||||
* only owned by us and noone else. */
|
||||
* only owned by us and no one else. */
|
||||
r = image_path_lock(np, LOCK_EX|LOCK_NB, &tree_global_lock, &tree_local_lock);
|
||||
if (r < 0) {
|
||||
log_error_errno(r, "Failed to lock %s: %m", np);
|
||||
|
@ -329,7 +329,7 @@ enum nss_status userdb_getgrgid(
|
||||
return NSS_STATUS_UNAVAIL;
|
||||
}
|
||||
|
||||
/* If we acquired the record via NSS then there's no reason to respond unless we have to agument the
|
||||
/* If we acquired the record via NSS then there's no reason to respond unless we have to augment the
|
||||
* list of members of the group */
|
||||
if (from_nss && strv_isempty(members))
|
||||
return NSS_STATUS_NOTFOUND;
|
||||
|
@ -386,7 +386,7 @@ static uint64_t free_area_available_for_new_partitions(const FreeArea *a) {
|
||||
uint64_t avail;
|
||||
|
||||
/* Similar to free_area_available(), but takes into account that the required size and padding of the
|
||||
* preceeding partition is honoured. */
|
||||
* preceding partition is honoured. */
|
||||
|
||||
avail = free_area_available(a);
|
||||
if (a->after) {
|
||||
@ -553,7 +553,7 @@ static int context_grow_partitions_phase(
|
||||
LIST_FOREACH(partitions, p, context->partitions) {
|
||||
|
||||
/* Look only at partitions associated with this free area, i.e. immediately
|
||||
* preceeding it, or allocated into it */
|
||||
* preceding it, or allocated into it */
|
||||
if (p->allocated_to_area != a && p->padding_area != a)
|
||||
continue;
|
||||
|
||||
@ -682,7 +682,7 @@ static int context_grow_partitions_on_free_area(Context *context, FreeArea *a) {
|
||||
break;
|
||||
}
|
||||
|
||||
/* We still have space left over? Donate to preceeding partition if we have one */
|
||||
/* We still have space left over? Donate to preceding partition if we have one */
|
||||
if (span > 0 && a->after && !PARTITION_IS_FOREIGN(a->after)) {
|
||||
uint64_t m, xsz;
|
||||
|
||||
@ -697,7 +697,7 @@ static int context_grow_partitions_on_free_area(Context *context, FreeArea *a) {
|
||||
a->after->new_size = m;
|
||||
}
|
||||
|
||||
/* What? Even still some space left (maybe because there was no preceeding partition, or it had a
|
||||
/* What? Even still some space left (maybe because there was no preceding partition, or it had a
|
||||
* size limit), then let's donate it to whoever wants it. */
|
||||
if (span > 0) {
|
||||
Partition *p;
|
||||
@ -726,7 +726,7 @@ static int context_grow_partitions_on_free_area(Context *context, FreeArea *a) {
|
||||
}
|
||||
}
|
||||
|
||||
/* Yuck, still noone? Then make it padding */
|
||||
/* Yuck, still no one? Then make it padding */
|
||||
if (span > 0 && a->after) {
|
||||
assert(a->after->new_padding != UINT64_MAX);
|
||||
a->after->new_padding += span;
|
||||
@ -2864,7 +2864,7 @@ static int acquire_root_devno(const char *p, int mode, char **ret) {
|
||||
/* From partition to whole disk containing it */
|
||||
r = block_get_whole_disk(devno, &devno);
|
||||
if (r < 0)
|
||||
log_debug_errno(r, "Failed to find whole disk block device for '%s', ingoring: %m", p);
|
||||
log_debug_errno(r, "Failed to find whole disk block device for '%s', ignoring: %m", p);
|
||||
|
||||
return device_path_make_canonical(S_IFBLK, devno, ret);
|
||||
}
|
||||
|
@ -150,7 +150,7 @@ int fd_chown_recursive(
|
||||
struct stat st;
|
||||
|
||||
/* Note that the slightly different order of fstat() and the checks here and in
|
||||
* path_chown_recursive(). That's because when we open the dirctory ourselves we can specify
|
||||
* path_chown_recursive(). That's because when we open the directory ourselves we can specify
|
||||
* O_DIRECTORY and we always want to ensure we are operating on a directory before deciding whether
|
||||
* the operation is otherwise redundant. */
|
||||
|
||||
|
@ -2001,7 +2001,7 @@ int table_print(Table *t, FILE *f) {
|
||||
_cleanup_free_ char *padded = NULL;
|
||||
|
||||
/* We truncated more lines of this cell, let's add an
|
||||
* ellipsis. We first append it, but thta might make our
|
||||
* ellipsis. We first append it, but that might make our
|
||||
* string grow above what we have space for, hence ellipsize
|
||||
* right after. This will truncate the ellipsis and add a new
|
||||
* one. */
|
||||
|
@ -1711,7 +1711,7 @@ int unit_file_verify_alias(const UnitFileInstallInfo *i, const char *dst, char *
|
||||
*
|
||||
* ret_dst is set in cases where "instance propagation" happens, i.e. when the instance part is
|
||||
* inserted into dst. It is not normally set, even on success, so that the caller can easily
|
||||
* distinguish the case where instance propagation occured.
|
||||
* distinguish the case where instance propagation occurred.
|
||||
*/
|
||||
|
||||
const char *path_alias = strrchr(dst, '/');
|
||||
|
@ -1381,7 +1381,7 @@ void json_variant_sensitive(JsonVariant *v) {
|
||||
|
||||
/* Marks a variant as "sensitive", so that it is erased from memory when it is destroyed. This is a
|
||||
* one-way operation: as soon as it is marked this way it remains marked this way until it's
|
||||
* destoryed. A magic variant is never sensitive though, even when asked, since it's too
|
||||
* destroyed. A magic variant is never sensitive though, even when asked, since it's too
|
||||
* basic. Similar, const string variant are never sensitive either, after all they are included in
|
||||
* the source code as they are, which is not suitable for inclusion of secrets.
|
||||
*
|
||||
|
@ -190,7 +190,7 @@ int pkcs11_token_login(
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EIO),
|
||||
"Failed to log into security token '%s': %s", token_label, p11_kit_strerror(rv));
|
||||
|
||||
log_info("Successully logged into security token '%s' via protected authentication path.", token_label);
|
||||
log_info("Successfully logged into security token '%s' via protected authentication path.", token_label);
|
||||
*ret_used_pin = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
@ -208,7 +208,7 @@ static int swap_device_to_device_id(const SwapEntry *swap, dev_t *ret_dev) {
|
||||
}
|
||||
|
||||
/*
|
||||
* Attempt to calculate the swap file offset on supported filesystems. On unsuported
|
||||
* Attempt to calculate the swap file offset on supported filesystems. On unsupported
|
||||
* filesystems, a debug message is logged and ret_offset is set to UINT64_MAX.
|
||||
*/
|
||||
static int calculate_swap_file_offset(const SwapEntry *swap, uint64_t *ret_offset) {
|
||||
|
@ -11,7 +11,7 @@
|
||||
char *sysctl_normalize(char *s);
|
||||
int sysctl_read(const char *property, char **value);
|
||||
int sysctl_write(const char *property, const char *value);
|
||||
int sysctl_writef(const char *propery, const char *format, ...) _printf_(2, 3);
|
||||
int sysctl_writef(const char *property, const char *format, ...) _printf_(2, 3);
|
||||
|
||||
int sysctl_read_ip_property(int af, const char *ifname, const char *property, char **ret);
|
||||
int sysctl_write_ip_property(int af, const char *ifname, const char *property, const char *value);
|
||||
|
@ -69,7 +69,7 @@ int get_testdata_dir(const char *suffix, char **ret) {
|
||||
if (!dir)
|
||||
dir = SYSTEMD_TEST_DATA;
|
||||
if (access(dir, F_OK) < 0)
|
||||
return log_error_errno(errno, "ERROR: $SYSTEMD_TEST_DATA directory [%s] not accesible: %m", dir);
|
||||
return log_error_errno(errno, "ERROR: $SYSTEMD_TEST_DATA directory [%s] not accessible: %m", dir);
|
||||
|
||||
p = path_join(dir, suffix);
|
||||
if (!p)
|
||||
|
@ -1071,7 +1071,7 @@ static int user_record_augment(UserRecord *h, JsonDispatchFlags json_flags) {
|
||||
return json_log_oom(h->json, json_flags);
|
||||
}
|
||||
|
||||
/* Let's add in the following automatisms only for regular users, they dont make sense for any others */
|
||||
/* Let's add in the following automatisms only for regular users, they don't make sense for any others */
|
||||
if (user_record_disposition(h) != USER_REGULAR)
|
||||
return 0;
|
||||
|
||||
@ -1802,7 +1802,7 @@ int user_record_test_password_change_required(UserRecord *h) {
|
||||
0: No password change required, but permitted
|
||||
*/
|
||||
|
||||
/* If a pasword change request has been set explicitly, it overrides everything */
|
||||
/* If a password change request has been set explicitly, it overrides everything */
|
||||
if (h->password_change_now > 0)
|
||||
return -EKEYREVOKED;
|
||||
|
||||
|
@ -1105,8 +1105,8 @@ static void test_verify_alias(void) {
|
||||
verify_one(&bare_template, "foo.target.wants/plain.service", -EXDEV, NULL);
|
||||
verify_one(&bare_template, "foo.target.wants/plain.socket", -EXDEV, NULL);
|
||||
verify_one(&bare_template, "foo.target.wants/plain@.service", -EXDEV, NULL);
|
||||
/* Name mistmatch: we cannot allow this, because plain@foo.service would be pulled in by foo.taget,
|
||||
* but would not be resolvable on its own, since systemd doesn't know how to load the fragment. */
|
||||
/* Name mismatch: we cannot allow this, because plain@foo.service would be pulled in by foo.target,
|
||||
* but would not be resolveable on its own, since systemd doesn't know how to load the fragment. */
|
||||
verify_one(&bare_template, "foo.target.wants/plain@foo.service", -EXDEV, NULL);
|
||||
verify_one(&bare_template, "foo.target.wants/template1@foo.service", 0, NULL);
|
||||
verify_one(&bare_template, "foo.target.wants/service", -EXDEV, NULL);
|
||||
@ -1116,7 +1116,7 @@ static void test_verify_alias(void) {
|
||||
verify_one(&bare_template, "foo.target.requires/template1@inst.service", 0, NULL);
|
||||
verify_one(&bare_template, "foo.target.requires/service", -EXDEV, NULL);
|
||||
verify_one(&bare_template, "foo.target.conf/plain.service", -EXDEV, NULL);
|
||||
verify_one(&bare_template, "FOO@.target.requires/plain@.service", -EXDEV, NULL); /* template name mistatch */
|
||||
verify_one(&bare_template, "FOO@.target.requires/plain@.service", -EXDEV, NULL); /* template name mismatch */
|
||||
verify_one(&bare_template, "FOO@inst.target.requires/plain@.service", -EXDEV, NULL);
|
||||
verify_one(&bare_template, "FOO@inst.target.requires/plain@inst.service", -EXDEV, NULL);
|
||||
verify_one(&bare_template, "FOO@.target.requires/template1@.service", 0, NULL); /* instance propagated */
|
||||
@ -1170,7 +1170,7 @@ static void test_verify_alias(void) {
|
||||
verify_one(&inst_template, "bar.target.requires/template3@inst.service", 0, NULL);
|
||||
verify_one(&inst_template, "bar.target.requires/service", -EXDEV, NULL);
|
||||
verify_one(&inst_template, "bar.target.conf/plain.service", -EXDEV, NULL);
|
||||
verify_one(&inst_template, "BAR@.target.requires/plain@.service", -EXDEV, NULL); /* template name mistatch */
|
||||
verify_one(&inst_template, "BAR@.target.requires/plain@.service", -EXDEV, NULL); /* template name mismatch */
|
||||
verify_one(&inst_template, "BAR@inst.target.requires/plain@.service", -EXDEV, NULL);
|
||||
verify_one(&inst_template, "BAR@inst.target.requires/plain@inst.service", -EXDEV, NULL);
|
||||
verify_one(&inst_template, "BAR@.target.requires/template3@.service", -EXDEV, NULL); /* instance missing */
|
||||
|
@ -78,7 +78,7 @@ typedef enum {
|
||||
TK_M_ATTR, /* string, takes filename through attribute, sd_device_get_sysattr_value(), util_resolve_subsys_kernel(), etc. */
|
||||
TK_M_SYSCTL, /* string, takes kernel parameter through attribute */
|
||||
|
||||
/* matches parent paramters */
|
||||
/* matches parent parameters */
|
||||
TK_M_PARENTS_KERNEL, /* string */
|
||||
TK_M_PARENTS_SUBSYSTEM, /* string */
|
||||
TK_M_PARENTS_DRIVER, /* string */
|
||||
|
@ -239,7 +239,7 @@ static int show_group(GroupRecord *gr, Table *table) {
|
||||
break;
|
||||
|
||||
default:
|
||||
assert_not_reached("Unexpected disply mode");
|
||||
assert_not_reached("Unexpected display mode");
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Detailed project version that includes git commit when not built from a release.
|
||||
* Use this in preference to PROJECT_VERSION, with the following exceptions:
|
||||
* - where a simplified form is expected for compatiblity, for example
|
||||
* - where a simplified form is expected for compatibility, for example
|
||||
* 'udevadm version',
|
||||
* - where a simplified machine-parsable form is more useful, for example
|
||||
* pkgconfig files and version information written to binary files.
|
||||
|
Loading…
Reference in New Issue
Block a user