Merge pull request #4911 from keszybz/fixlets

A few simple fixes / improvements
This commit is contained in:
Martin Pitt
2016-12-18 13:20:12 +01:00
committed by GitHub
12 changed files with 83 additions and 85 deletions
+26 -26
View File
@@ -243,13 +243,13 @@ int log_open(void) {
return 0;
}
if ((log_target != LOG_TARGET_AUTO && log_target != LOG_TARGET_SAFE) ||
if (!IN_SET(log_target, LOG_TARGET_AUTO, LOG_TARGET_SAFE) ||
getpid() == 1 ||
isatty(STDERR_FILENO) <= 0) {
if (log_target == LOG_TARGET_AUTO ||
log_target == LOG_TARGET_JOURNAL_OR_KMSG ||
log_target == LOG_TARGET_JOURNAL) {
if (IN_SET(log_target, LOG_TARGET_AUTO,
LOG_TARGET_JOURNAL_OR_KMSG,
LOG_TARGET_JOURNAL)) {
r = log_open_journal();
if (r >= 0) {
log_close_syslog();
@@ -258,8 +258,8 @@ int log_open(void) {
}
}
if (log_target == LOG_TARGET_SYSLOG_OR_KMSG ||
log_target == LOG_TARGET_SYSLOG) {
if (IN_SET(log_target, LOG_TARGET_SYSLOG_OR_KMSG,
LOG_TARGET_SYSLOG)) {
r = log_open_syslog();
if (r >= 0) {
log_close_journal();
@@ -268,11 +268,11 @@ int log_open(void) {
}
}
if (log_target == LOG_TARGET_AUTO ||
log_target == LOG_TARGET_SAFE ||
log_target == LOG_TARGET_JOURNAL_OR_KMSG ||
log_target == LOG_TARGET_SYSLOG_OR_KMSG ||
log_target == LOG_TARGET_KMSG) {
if (IN_SET(log_target, LOG_TARGET_AUTO,
LOG_TARGET_SAFE,
LOG_TARGET_JOURNAL_OR_KMSG,
LOG_TARGET_SYSLOG_OR_KMSG,
LOG_TARGET_KMSG)) {
r = log_open_kmsg();
if (r >= 0) {
log_close_journal();
@@ -588,9 +588,9 @@ static int log_dispatch(
if ((e = strpbrk(buffer, NEWLINE)))
*(e++) = 0;
if (log_target == LOG_TARGET_AUTO ||
log_target == LOG_TARGET_JOURNAL_OR_KMSG ||
log_target == LOG_TARGET_JOURNAL) {
if (IN_SET(log_target, LOG_TARGET_AUTO,
LOG_TARGET_JOURNAL_OR_KMSG,
LOG_TARGET_JOURNAL)) {
k = write_to_journal(level, error, file, line, func, object_field, object, extra_field, extra, buffer);
if (k < 0) {
@@ -600,8 +600,8 @@ static int log_dispatch(
}
}
if (log_target == LOG_TARGET_SYSLOG_OR_KMSG ||
log_target == LOG_TARGET_SYSLOG) {
if (IN_SET(log_target, LOG_TARGET_SYSLOG_OR_KMSG,
LOG_TARGET_SYSLOG)) {
k = write_to_syslog(level, error, file, line, func, buffer);
if (k < 0) {
@@ -612,11 +612,11 @@ static int log_dispatch(
}
if (k <= 0 &&
(log_target == LOG_TARGET_AUTO ||
log_target == LOG_TARGET_SAFE ||
log_target == LOG_TARGET_SYSLOG_OR_KMSG ||
log_target == LOG_TARGET_JOURNAL_OR_KMSG ||
log_target == LOG_TARGET_KMSG)) {
IN_SET(log_target, LOG_TARGET_AUTO,
LOG_TARGET_SAFE,
LOG_TARGET_SYSLOG_OR_KMSG,
LOG_TARGET_JOURNAL_OR_KMSG,
LOG_TARGET_KMSG)) {
k = write_to_kmsg(level, error, file, line, func, buffer);
if (k < 0) {
@@ -881,9 +881,9 @@ int log_struct_internal(
if ((level & LOG_FACMASK) == 0)
level = log_facility | LOG_PRI(level);
if ((log_target == LOG_TARGET_AUTO ||
log_target == LOG_TARGET_JOURNAL_OR_KMSG ||
log_target == LOG_TARGET_JOURNAL) &&
if (IN_SET(log_target, LOG_TARGET_AUTO,
LOG_TARGET_JOURNAL_OR_KMSG,
LOG_TARGET_JOURNAL) &&
journal_fd >= 0) {
char header[LINE_MAX];
struct iovec iovec[17] = {};
@@ -1078,8 +1078,8 @@ int log_show_location_from_string(const char *e) {
}
bool log_on_console(void) {
if (log_target == LOG_TARGET_CONSOLE ||
log_target == LOG_TARGET_CONSOLE_PREFIXED)
if (IN_SET(log_target, LOG_TARGET_CONSOLE,
LOG_TARGET_CONSOLE_PREFIXED))
return true;
return syslog_fd < 0 && kmsg_fd < 0 && journal_fd < 0;
+13 -13
View File
@@ -693,13 +693,12 @@ int umount_verbose(const char *what) {
const char *mount_propagation_flags_to_string(unsigned long flags) {
switch (flags & (MS_SHARED|MS_SLAVE|MS_PRIVATE)) {
case 0:
return "";
case MS_SHARED:
return "shared";
case MS_SLAVE:
return "slave";
case MS_PRIVATE:
return "private";
}
@@ -707,17 +706,18 @@ const char *mount_propagation_flags_to_string(unsigned long flags) {
return NULL;
}
unsigned long mount_propagation_flags_from_string(const char *name) {
int mount_propagation_flags_from_string(const char *name, unsigned long *ret) {
if (isempty(name))
return 0;
if (streq(name, "shared"))
return MS_SHARED;
if (streq(name, "slave"))
return MS_SLAVE;
if (streq(name, "private"))
return MS_PRIVATE;
*ret = 0;
else if (streq(name, "shared"))
*ret = MS_SHARED;
else if (streq(name, "slave"))
*ret = MS_SLAVE;
else if (streq(name, "private"))
*ret = MS_PRIVATE;
else
return -EINVAL;
return 0;
}
+1 -1
View File
@@ -63,4 +63,4 @@ int mount_verbose(
int umount_verbose(const char *where);
const char *mount_propagation_flags_to_string(unsigned long flags);
unsigned long mount_propagation_flags_from_string(const char *name);
int mount_propagation_flags_from_string(const char *name, unsigned long *ret);
+1 -1
View File
@@ -1671,7 +1671,7 @@ int bus_exec_context_set_transient_property(
if (mode != UNIT_CHECK) {
c->mount_flags = flags;
unit_write_drop_in_private_format(u, mode, name, "%s=%s", name, strempty(mount_propagation_flags_to_string(flags)));
unit_write_drop_in_private_format(u, mode, name, "%s=%s", name, mount_propagation_flags_to_string(flags));
}
return 1;
+4 -12
View File
@@ -1278,25 +1278,17 @@ int config_parse_exec_mount_flags(
void *userdata) {
unsigned long flags;
ExecContext *c = data;
int r;
assert(filename);
assert(lvalue);
assert(rvalue);
assert(data);
if (isempty(rvalue))
flags = 0;
else {
flags = mount_propagation_flags_from_string(rvalue);
if (flags == 0) {
log_syntax(unit, LOG_ERR, filename, line, 0, "Failed to parse mount flag %s, ignoring.", rvalue);
return 0;
}
}
c->mount_flags = flags;
r = mount_propagation_flags_from_string(rvalue, &c->mount_flags);
if (r < 0)
log_syntax(unit, LOG_ERR, filename, line, 0, "Failed to parse mount flag %s, ignoring.", rvalue);
return 0;
}
-1
View File
@@ -904,7 +904,6 @@ static int parse_argv(int argc, char *argv[]) {
break;
case ARG_UNIT:
r = free_and_strdup(&arg_default_unit, optarg);
if (r < 0)
return log_error_errno(r, "Failed to set default unit %s: %m", optarg);
+4 -8
View File
@@ -135,8 +135,9 @@ static int generate_wants_symlinks(void) {
STRV_FOREACH(u, arg_wants) {
_cleanup_free_ char *p = NULL, *f = NULL;
const char *target = arg_default_unit ?: SPECIAL_DEFAULT_TARGET;
p = strjoin(arg_dest, "/", arg_default_unit, ".wants/", *u);
p = strjoin(arg_dest, "/", target, ".wants/", *u);
if (!p)
return log_oom();
@@ -172,12 +173,6 @@ int main(int argc, char *argv[]) {
umask(0022);
r = free_and_strdup(&arg_default_unit, SPECIAL_DEFAULT_TARGET);
if (r < 0) {
log_error_errno(r, "Failed to set default unit %s: %m", SPECIAL_DEFAULT_TARGET);
goto finish;
}
r = parse_proc_cmdline(parse_proc_cmdline_item, NULL, false);
if (r < 0)
log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m");
@@ -197,6 +192,7 @@ int main(int argc, char *argv[]) {
r = q;
finish:
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
arg_default_unit = mfree(arg_default_unit);
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
}
+4
View File
@@ -216,7 +216,11 @@ static void test_lz4_decompress_partial(void) {
memset(huge, 'x', HUGE_SIZE);
memcpy(huge, "HUGE=", 5);
#if LZ4_VERSION_NUMBER >= 10700
r = LZ4_compress_default(huge, buf, HUGE_SIZE, buf_size);
#else
r = LZ4_compress_limitedOutput(huge, buf, HUGE_SIZE, buf_size);
#endif
assert_se(r >= 0);
compressed = r;
log_info("Compressed %i → %zu", HUGE_SIZE, compressed);
+3 -9
View File
@@ -579,15 +579,9 @@ int bus_append_unit_property_assignment(sd_bus_message *m, const char *assignmen
else if (streq(field, "MountFlags")) {
unsigned long f;
if (isempty(eq))
f = 0;
else {
f = mount_propagation_flags_from_string(eq);
if (f == 0) {
log_error("Failed to parse mount propagation type: %s", eq);
return -EINVAL;
}
}
r = mount_propagation_flags_from_string(eq, &f);
if (r < 0)
return log_error_errno(r, "Failed to parse mount propagation flags: %s", eq);
r = sd_bus_message_append(m, "v", "t", f);
} else if (STR_IN_SET(field, "BindPaths", "BindReadOnlyPaths")) {
@@ -22,12 +22,12 @@
#include "fs-util.h"
#include "log.h"
#include "special.h"
#include "string-util.h"
#include "util.h"
/*
* Implements the logic described in
* http://freedesktop.org/wiki/Software/systemd/SystemUpdates
* Implements the logic described in systemd.offline-updates(7).
*/
static const char *arg_dest = "/tmp";
@@ -43,7 +43,7 @@ static int generate_symlink(void) {
return -EINVAL;
}
p = strjoina(arg_dest, "/default.target");
p = strjoina(arg_dest, "/" SPECIAL_DEFAULT_TARGET);
if (symlink(SYSTEM_DATA_UNIT_PATH "/system-update.target", p) < 0)
return log_error_errno(errno, "Failed to create symlink %s: %m", p);
+2 -1
View File
@@ -22,6 +22,7 @@
#include "install.h"
#include "mkdir.h"
#include "rm-rf.h"
#include "special.h"
#include "string-util.h"
static void test_basic_mask_and_enable(const char *root) {
@@ -338,7 +339,7 @@ static void test_default(const char *root) {
assert_se(n_changes == 1);
assert_se(changes[0].type == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/test-default-real.target"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_PATH"/default.target");
p = strjoina(root, SYSTEM_CONFIG_UNIT_PATH "/" SPECIAL_DEFAULT_TARGET);
assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes);
changes = NULL; n_changes = 0;
+22 -10
View File
@@ -23,23 +23,35 @@
#include "mount-util.h"
#include "string-util.h"
static void test_mount_propagation_flags(const char *name, unsigned long f) {
assert(mount_propagation_flags_from_string(name) == f);
static void test_mount_propagation_flags(const char *name, int ret, unsigned long expected) {
long unsigned flags;
if (f != 0)
assert_se(streq_ptr(mount_propagation_flags_to_string(f), name));
assert(mount_propagation_flags_from_string(name, &flags) == ret);
if (ret >= 0) {
const char *c;
assert_se(flags == expected);
c = mount_propagation_flags_to_string(flags);
if (isempty(name))
assert_se(isempty(c));
else
assert_se(streq(c, name));
}
}
int main(int argc, char *argv[]) {
log_set_max_level(LOG_DEBUG);
test_mount_propagation_flags("shared", MS_SHARED);
test_mount_propagation_flags("slave", MS_SLAVE);
test_mount_propagation_flags("private", MS_PRIVATE);
test_mount_propagation_flags(NULL, 0);
test_mount_propagation_flags("", 0);
test_mount_propagation_flags("xxxx", 0);
test_mount_propagation_flags("shared", 0, MS_SHARED);
test_mount_propagation_flags("slave", 0, MS_SLAVE);
test_mount_propagation_flags("private", 0, MS_PRIVATE);
test_mount_propagation_flags(NULL, 0, 0);
test_mount_propagation_flags("", 0, 0);
test_mount_propagation_flags("xxxx", -EINVAL, 0);
test_mount_propagation_flags(" ", -EINVAL, 0);
return 0;
}