main: combine a some if checks

Let's merge a few if blocks that are conditioned out the same way.

No change in behaviour.
This commit is contained in:
Lennart Poettering 2018-06-05 16:07:49 +02:00
parent ef59409ff2
commit 9289045238

View file

@ -2125,7 +2125,6 @@ static bool early_skip_setup_check(int argc, char *argv[]) {
* anyway, even if in that case we also do deserialization. */
for (i = 1; i < argc; i++) {
if (streq(argv[i], "--switched-root"))
return false; /* If we switched root, don't skip the setup. */
else if (streq(argv[i], "--deserialize"))
@ -2177,8 +2176,8 @@ int main(int argc, char *argv[]) {
/* Disable the umask logic */
umask(0);
/* Make sure that at least initially we do not ever log to journald/syslogd, because it might not be activated
* yet (even though the log socket for it exists). */
/* Make sure that at least initially we do not ever log to journald/syslogd, because it might not be
* activated yet (even though the log socket for it exists). */
log_set_prohibit_ipc(true);
/* Always reopen /dev/console when running as PID 1 or one of its pre-execve() children. This is
@ -2186,62 +2185,70 @@ int main(int argc, char *argv[]) {
* child process right before execve()'ing the actual binary, at a point in time where socket
* activation stderr/stdout area already set up. */
log_set_always_reopen_console(true);
}
if (getpid_cached() == 1 && detect_container() <= 0) {
if (detect_container() <= 0) {
/* Running outside of a container as PID 1 */
arg_system = true;
log_set_target(LOG_TARGET_KMSG);
log_open();
/* Running outside of a container as PID 1 */
arg_system = true;
log_set_target(LOG_TARGET_KMSG);
log_open();
if (in_initrd())
initrd_timestamp = userspace_timestamp;
if (in_initrd())
initrd_timestamp = userspace_timestamp;
if (!skip_setup) {
r = mount_setup_early();
if (r < 0) {
error_message = "Failed to mount early API filesystems";
if (!skip_setup) {
r = mount_setup_early();
if (r < 0) {
error_message = "Failed to mount early API filesystems";
goto finish;
}
r = initialize_security(
&loaded_policy,
&security_start_timestamp,
&security_finish_timestamp,
&error_message);
if (r < 0)
goto finish;
}
if (mac_selinux_init() < 0) {
error_message = "Failed to initialize SELinux policy";
goto finish;
}
r = initialize_security(
&loaded_policy,
&security_start_timestamp,
&security_finish_timestamp,
&error_message);
if (r < 0)
goto finish;
if (!skip_setup)
initialize_clock();
/* Set the default for later on, but don't actually open the logs like this for now. Note that
* if we are transitioning from the initrd there might still be journal fd open, and we
* shouldn't attempt opening that before we parsed /proc/cmdline which might redirect output
* elsewhere. */
log_set_target(LOG_TARGET_JOURNAL_OR_KMSG);
} else {
/* Running inside a container, as PID 1 */
arg_system = true;
log_set_target(LOG_TARGET_CONSOLE);
log_open();
/* For later on, see above... */
log_set_target(LOG_TARGET_JOURNAL);
/* clear the kernel timestamp,
* because we are in a container */
kernel_timestamp = DUAL_TIMESTAMP_NULL;
}
if (mac_selinux_init() < 0) {
error_message = "Failed to initialize SELinux policy";
initialize_coredump(skip_setup);
r = fixup_environment();
if (r < 0) {
log_emergency_errno(r, "Failed to fix up PID 1 environment: %m");
error_message = "Failed to fix up PID1 environment";
goto finish;
}
if (!skip_setup)
initialize_clock();
/* Set the default for later on, but don't actually
* open the logs like this for now. Note that if we
* are transitioning from the initrd there might still
* be journal fd open, and we shouldn't attempt
* opening that before we parsed /proc/cmdline which
* might redirect output elsewhere. */
log_set_target(LOG_TARGET_JOURNAL_OR_KMSG);
} else if (getpid_cached() == 1) {
/* Running inside a container, as PID 1 */
arg_system = true;
log_set_target(LOG_TARGET_CONSOLE);
log_open();
/* For later on, see above... */
log_set_target(LOG_TARGET_JOURNAL);
/* clear the kernel timestamp,
* because we are in a container */
kernel_timestamp = DUAL_TIMESTAMP_NULL;
} else {
/* Running as user instance */
arg_system = false;
@ -2253,24 +2260,14 @@ int main(int argc, char *argv[]) {
kernel_timestamp = DUAL_TIMESTAMP_NULL;
}
initialize_coredump(skip_setup);
r = fixup_environment();
if (r < 0) {
log_emergency_errno(r, "Failed to fix up PID 1 environment: %m");
error_message = "Failed to fix up PID1 environment";
goto finish;
}
if (arg_system) {
/* Try to figure out if we can use colors with the console. No
* need to do that for user instances since they never log
* into the console. */
/* Try to figure out if we can use colors with the console. No need to do that for user instances since
* they never log into the console. */
log_show_color(colors_enabled());
r = make_null_stdio();
if (r < 0)
log_warning_errno(r, "Failed to redirect standard streams to /dev/null: %m");
log_warning_errno(r, "Failed to redirect standard streams to /dev/null, ignoring: %m");
}
/* Mount /proc, /sys and friends, so that /proc/cmdline and
@ -2418,10 +2415,10 @@ int main(int argc, char *argv[]) {
finish:
pager_close();
if (m)
if (m) {
arg_shutdown_watchdog = m->shutdown_watchdog;
m = manager_free(m);
m = manager_free(m);
}
free_arguments();
mac_selinux_finish();
@ -2454,7 +2451,6 @@ finish:
if (shutdown_verb) {
r = become_shutdown(shutdown_verb, retval);
log_error_errno(r, "Failed to execute shutdown binary, %s: %m", getpid_cached() == 1 ? "freezing" : "quitting");
error_message = "Failed to execute shutdown binary";
}