summaryrefslogtreecommitdiff
path: root/src/core/manager.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-10-22 16:11:41 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-10-22 16:15:46 -0400
commitfb4650aa346a57da3d20525ca2a3124099a1a307 (patch)
treece7365ba81a89f676a3435138340fe24b6ea546c /src/core/manager.c
parentd7f69e16f1a5b84e9acf1771a9b53da3787ae79d (diff)
tree-wide: use startswith return value to avoid hardcoded offset
I think it's an antipattern to have to count the number of bytes in the prefix by hand. We should do this automatically to avoid wasting programmer time, and possible errors. I didn't any offsets that were wrong, so this change is mostly to make future development easier.
Diffstat (limited to 'src/core/manager.c')
-rw-r--r--src/core/manager.c111
1 files changed, 56 insertions, 55 deletions
diff --git a/src/core/manager.c b/src/core/manager.c
index 65f163de31..0549f5ef1b 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -2582,6 +2582,7 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) {
for (;;) {
char line[LINE_MAX], *l;
+ const char *val;
if (!fgets(line, sizeof(line), f)) {
if (feof(f))
@@ -2598,63 +2599,63 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) {
if (l[0] == 0)
break;
- if (startswith(l, "current-job-id=")) {
+ if ((val = startswith(l, "current-job-id="))) {
uint32_t id;
- if (safe_atou32(l+15, &id) < 0)
- log_debug("Failed to parse current job id value %s", l+15);
+ if (safe_atou32(val, &id) < 0)
+ log_debug("Failed to parse current job id value %s", val);
else
m->current_job_id = MAX(m->current_job_id, id);
- } else if (startswith(l, "n-installed-jobs=")) {
+ } else if ((val = startswith(l, "n-installed-jobs="))) {
uint32_t n;
- if (safe_atou32(l+17, &n) < 0)
- log_debug("Failed to parse installed jobs counter %s", l+17);
+ if (safe_atou32(val, &n) < 0)
+ log_debug("Failed to parse installed jobs counter %s", val);
else
m->n_installed_jobs += n;
- } else if (startswith(l, "n-failed-jobs=")) {
+ } else if ((val = startswith(l, "n-failed-jobs="))) {
uint32_t n;
- if (safe_atou32(l+14, &n) < 0)
- log_debug("Failed to parse failed jobs counter %s", l+14);
+ if (safe_atou32(val, &n) < 0)
+ log_debug("Failed to parse failed jobs counter %s", val);
else
m->n_failed_jobs += n;
- } else if (startswith(l, "taint-usr=")) {
+ } else if ((val = startswith(l, "taint-usr="))) {
int b;
- b = parse_boolean(l+10);
+ b = parse_boolean(val);
if (b < 0)
- log_debug("Failed to parse taint /usr flag %s", l+10);
+ log_debug("Failed to parse taint /usr flag %s", val);
else
m->taint_usr = m->taint_usr || b;
- } else if (startswith(l, "firmware-timestamp="))
- dual_timestamp_deserialize(l+19, &m->firmware_timestamp);
- else if (startswith(l, "loader-timestamp="))
- dual_timestamp_deserialize(l+17, &m->loader_timestamp);
- else if (startswith(l, "kernel-timestamp="))
- dual_timestamp_deserialize(l+17, &m->kernel_timestamp);
- else if (startswith(l, "initrd-timestamp="))
- dual_timestamp_deserialize(l+17, &m->initrd_timestamp);
- else if (startswith(l, "userspace-timestamp="))
- dual_timestamp_deserialize(l+20, &m->userspace_timestamp);
- else if (startswith(l, "finish-timestamp="))
- dual_timestamp_deserialize(l+17, &m->finish_timestamp);
- else if (startswith(l, "security-start-timestamp="))
- dual_timestamp_deserialize(l+25, &m->security_start_timestamp);
- else if (startswith(l, "security-finish-timestamp="))
- dual_timestamp_deserialize(l+26, &m->security_finish_timestamp);
- else if (startswith(l, "generators-start-timestamp="))
- dual_timestamp_deserialize(l+27, &m->generators_start_timestamp);
- else if (startswith(l, "generators-finish-timestamp="))
- dual_timestamp_deserialize(l+28, &m->generators_finish_timestamp);
- else if (startswith(l, "units-load-start-timestamp="))
- dual_timestamp_deserialize(l+27, &m->units_load_start_timestamp);
- else if (startswith(l, "units-load-finish-timestamp="))
- dual_timestamp_deserialize(l+28, &m->units_load_finish_timestamp);
+ } else if ((val = startswith(l, "firmware-timestamp=")))
+ dual_timestamp_deserialize(val, &m->firmware_timestamp);
+ else if ((val = startswith(l, "loader-timestamp=")))
+ dual_timestamp_deserialize(val, &m->loader_timestamp);
+ else if ((val = startswith(l, "kernel-timestamp=")))
+ dual_timestamp_deserialize(val, &m->kernel_timestamp);
+ else if ((val = startswith(l, "initrd-timestamp=")))
+ dual_timestamp_deserialize(val, &m->initrd_timestamp);
+ else if ((val = startswith(l, "userspace-timestamp=")))
+ dual_timestamp_deserialize(val, &m->userspace_timestamp);
+ else if ((val = startswith(l, "finish-timestamp=")))
+ dual_timestamp_deserialize(val, &m->finish_timestamp);
+ else if ((val = startswith(l, "security-start-timestamp=")))
+ dual_timestamp_deserialize(val, &m->security_start_timestamp);
+ else if ((val = startswith(l, "security-finish-timestamp=")))
+ dual_timestamp_deserialize(val, &m->security_finish_timestamp);
+ else if ((val = startswith(l, "generators-start-timestamp=")))
+ dual_timestamp_deserialize(val, &m->generators_start_timestamp);
+ else if ((val = startswith(l, "generators-finish-timestamp=")))
+ dual_timestamp_deserialize(val, &m->generators_finish_timestamp);
+ else if ((val = startswith(l, "units-load-start-timestamp=")))
+ dual_timestamp_deserialize(val, &m->units_load_start_timestamp);
+ else if ((val = startswith(l, "units-load-finish-timestamp=")))
+ dual_timestamp_deserialize(val, &m->units_load_finish_timestamp);
else if (startswith(l, "env=")) {
_cleanup_free_ char *uce = NULL;
char **e;
@@ -2672,21 +2673,21 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) {
strv_free(m->environment);
m->environment = e;
- } else if (startswith(l, "notify-fd=")) {
+ } else if ((val = startswith(l, "notify-fd="))) {
int fd;
- if (safe_atoi(l + 10, &fd) < 0 || fd < 0 || !fdset_contains(fds, fd))
- log_debug("Failed to parse notify fd: %s", l + 10);
+ if (safe_atoi(val, &fd) < 0 || fd < 0 || !fdset_contains(fds, fd))
+ log_debug("Failed to parse notify fd: %s", val);
else {
m->notify_event_source = sd_event_source_unref(m->notify_event_source);
safe_close(m->notify_fd);
m->notify_fd = fdset_remove(fds, fd);
}
- } else if (startswith(l, "notify-socket=")) {
+ } else if ((val = startswith(l, "notify-socket="))) {
char *n;
- n = strdup(l+14);
+ n = strdup(val);
if (!n) {
r = -ENOMEM;
goto finish;
@@ -2695,22 +2696,22 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) {
free(m->notify_socket);
m->notify_socket = n;
- } else if (startswith(l, "cgroups-agent-fd=")) {
+ } else if ((val = startswith(l, "cgroups-agent-fd="))) {
int fd;
- if (safe_atoi(l + 17, &fd) < 0 || fd < 0 || !fdset_contains(fds, fd))
- log_debug("Failed to parse cgroups agent fd: %s", l + 10);
+ if (safe_atoi(val, &fd) < 0 || fd < 0 || !fdset_contains(fds, fd))
+ log_debug("Failed to parse cgroups agent fd: %s", val);
else {
m->cgroups_agent_event_source = sd_event_source_unref(m->cgroups_agent_event_source);
safe_close(m->cgroups_agent_fd);
m->cgroups_agent_fd = fdset_remove(fds, fd);
}
- } else if (startswith(l, "user-lookup=")) {
+ } else if ((val = startswith(l, "user-lookup="))) {
int fd0, fd1;
- if (sscanf(l + 12, "%i %i", &fd0, &fd1) != 2 || fd0 < 0 || fd1 < 0 || fd0 == fd1 || !fdset_contains(fds, fd0) || !fdset_contains(fds, fd1))
- log_debug("Failed to parse user lookup fd: %s", l + 12);
+ if (sscanf(val, "%i %i", &fd0, &fd1) != 2 || fd0 < 0 || fd1 < 0 || fd0 == fd1 || !fdset_contains(fds, fd0) || !fdset_contains(fds, fd1))
+ log_debug("Failed to parse user lookup fd: %s", val);
else {
m->user_lookup_event_source = sd_event_source_unref(m->user_lookup_event_source);
safe_close_pair(m->user_lookup_fds);
@@ -2718,15 +2719,15 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) {
m->user_lookup_fds[1] = fdset_remove(fds, fd1);
}
- } else if (startswith(l, "dynamic-user="))
- dynamic_user_deserialize_one(m, l + 13, fds);
- else if (startswith(l, "destroy-ipc-uid="))
- manager_deserialize_uid_refs_one(m, l + 16);
- else if (startswith(l, "destroy-ipc-gid="))
- manager_deserialize_gid_refs_one(m, l + 16);
- else if (startswith(l, "subscribed=")) {
+ } else if ((val = startswith(l, "dynamic-user=")))
+ dynamic_user_deserialize_one(m, val, fds);
+ else if ((val = startswith(l, "destroy-ipc-uid=")))
+ manager_deserialize_uid_refs_one(m, val);
+ else if ((val = startswith(l, "destroy-ipc-gid=")))
+ manager_deserialize_gid_refs_one(m, val);
+ else if ((val = startswith(l, "subscribed="))) {
- if (strv_extend(&m->deserialized_subscribed, l+11) < 0)
+ if (strv_extend(&m->deserialized_subscribed, val) < 0)
log_oom();
} else if (!startswith(l, "kdbus-fd=")) /* ignore this one */