[systemd-commits] 5 commits - NEWS README src/analyze src/journal-remote src/libsystemd-network src/resolve-host src/shared
Lennart Poettering
lennart at kemper.freedesktop.org
Tue Aug 19 15:19:22 PDT 2014
NEWS | 11 ++++
README | 1
src/analyze/analyze.c | 20 ++++++--
src/journal-remote/journal-remote.c | 74 +++++++++++++++++--------------
src/journal-remote/journal-upload.c | 57 ++++++++++++-----------
src/libsystemd-network/sd-dhcp6-client.c | 2
src/resolve-host/resolve-host.c | 19 +++++--
src/shared/util.c | 1
8 files changed, 114 insertions(+), 71 deletions(-)
New commits:
commit 5364f729ba9616cd9fdab8d5413fbc25a1af3a57
Author: Lennart Poettering <lennart at poettering.net>
Date: Wed Aug 20 00:18:04 2014 +0200
indentation/spurious whitespace fixes
diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c
index c6c82eb..f69c0ed 100644
--- a/src/libsystemd-network/sd-dhcp6-client.c
+++ b/src/libsystemd-network/sd-dhcp6-client.c
@@ -707,7 +707,7 @@ static int client_receive_reply(sd_dhcp6_client *client, DHCP6Message *reply,
}
if (client->lease)
- dhcp6_lease_clear_timers(&client->lease->ia);
+ dhcp6_lease_clear_timers(&client->lease->ia);
client->lease = sd_dhcp6_lease_unref(client->lease);
client->lease = lease;
diff --git a/src/shared/util.c b/src/shared/util.c
index 2bb3b5e..85a570a 100644
--- a/src/shared/util.c
+++ b/src/shared/util.c
@@ -3942,7 +3942,6 @@ void execute_directory(const char *directory, DIR *d, usec_t timeout, char *argv
_exit(EXIT_FAILURE);
}
-
log_debug("Spawned %s as " PID_FMT ".", path, pid);
r = hashmap_put(pids, UINT_TO_PTR(pid), path);
commit 4015ac5c321f34784f73bd91ae9d7855ed663e5e
Author: Lennart Poettering <lennart at poettering.net>
Date: Wed Aug 20 00:17:46 2014 +0200
journal-upload: allow the tool to start
diff --git a/src/journal-remote/journal-upload.c b/src/journal-remote/journal-upload.c
index 5a30a29..7a7aee8 100644
--- a/src/journal-remote/journal-upload.c
+++ b/src/journal-remote/journal-upload.c
@@ -748,7 +748,7 @@ int main(int argc, char **argv) {
log_parse_environment();
r = parse_config();
- if (r <= 0)
+ if (r < 0)
goto finish;
r = parse_argv(argc, argv);
commit dad29dff1925a114e20d4eb7b47fca23c4f25fd7
Author: Lennart Poettering <lennart at poettering.net>
Date: Wed Aug 20 00:15:05 2014 +0200
cmdline: for new tools avoid introduce new negative switches, and properly align --help texts
Negative switches are a bad un-normalized thing. We alerady have some,
but we should try harder to avoid intrdoucing new ones.
Hence, instead of adding two switches:
--foobar
--no-foobar
Let's instead use the syntax
--foobar
--foobar=yes
--foobar=no
Where the first two are equivalent. The boolean argument is parsed
following the usual rules.
Change all new negative switches this way.
This patch also properly aligns the --help table, so that single char
switches always get a column separate of the long switches.
diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c
index b8b47ed..d860a02 100644
--- a/src/analyze/analyze.c
+++ b/src/analyze/analyze.c
@@ -1202,7 +1202,7 @@ static void help(void) {
" services, which finished TIMESPAN earlier, than the\n"
" latest in the branch. The unit of TIMESPAN is seconds\n"
" unless specified with a different unit, i.e. 50ms\n"
- " --no-man Do not check for existence of man pages\n\n"
+ " --man[=BOOL] Do [not] check for existence of man pages\n\n"
"Commands:\n"
" time Print time spent in the kernel before reaching userspace\n"
" blame Print list of running units ordered by time to init\n"
@@ -1230,7 +1230,7 @@ static int parse_argv(int argc, char *argv[]) {
ARG_DOT_TO_PATTERN,
ARG_FUZZ,
ARG_NO_PAGER,
- ARG_NO_MAN,
+ ARG_MAN,
};
static const struct option options[] = {
@@ -1244,7 +1244,7 @@ static int parse_argv(int argc, char *argv[]) {
{ "to-pattern", required_argument, NULL, ARG_DOT_TO_PATTERN },
{ "fuzz", required_argument, NULL, ARG_FUZZ },
{ "no-pager", no_argument, NULL, ARG_NO_PAGER },
- { "no-man", no_argument, NULL, ARG_NO_MAN },
+ { "man", optional_argument, NULL, ARG_MAN },
{ "host", required_argument, NULL, 'H' },
{ "machine", required_argument, NULL, 'M' },
{}
@@ -1315,8 +1315,18 @@ static int parse_argv(int argc, char *argv[]) {
arg_host = optarg;
break;
- case ARG_NO_MAN:
- arg_man = false;
+ case ARG_MAN:
+ if (optarg) {
+ r = parse_boolean(optarg);
+ if (r < 0) {
+ log_error("Failed to parse --man= argument.");
+ return -EINVAL;
+ }
+
+ arg_man = !!r;
+ } else
+ arg_man = true;
+
break;
case '?':
diff --git a/src/journal-remote/journal-remote.c b/src/journal-remote/journal-remote.c
index 36c8e00..aa659d1 100644
--- a/src/journal-remote/journal-remote.c
+++ b/src/journal-remote/journal-remote.c
@@ -1134,25 +1134,24 @@ static int parse_config(void) {
static void help(void) {
printf("%s [OPTIONS...] {FILE|-}...\n\n"
"Write external journal events to journal file(s).\n\n"
- "Options:\n"
- " --url=URL Read events from systemd-journal-gatewayd at URL\n"
- " --getter=COMMAND Read events from the output of COMMAND\n"
- " --listen-raw=ADDR Listen for connections at ADDR\n"
- " --listen-http=ADDR Listen for HTTP connections at ADDR\n"
- " --listen-https=ADDR Listen for HTTPS connections at ADDR\n"
+ " -h --help Show this help\n"
+ " --version Show package version\n"
+ " --url=URL Read events from systemd-journal-gatewayd at URL\n"
+ " --getter=COMMAND Read events from the output of COMMAND\n"
+ " --listen-raw=ADDR Listen for connections at ADDR\n"
+ " --listen-http=ADDR Listen for HTTP connections at ADDR\n"
+ " --listen-https=ADDR Listen for HTTPS connections at ADDR\n"
" -o --output=FILE|DIR Write output to FILE or DIR/external-*.journal\n"
- " --[no-]compress Use XZ-compression in the output journal (default: yes)\n"
- " --[no-]seal Use Event sealing in the output journal (default: no)\n"
- " --key=FILENAME Specify key in PEM format (default:\n"
- " \"" PRIV_KEY_FILE "\")\n"
- " --cert=FILENAME Specify certificate in PEM format (default:\n"
- " \"" CERT_FILE "\")\n"
- " --trust=FILENAME|all Specify CA certificate or disable checking (default:\n"
- " \"" TRUST_FILE "\")\n"
- " --gnutls-log=CATEGORY...\n"
- " Specify a list of gnutls logging categories\n"
- " -h --help Show this help and exit\n"
- " --version Print version string and exit\n"
+ " --compress[=BOOL] Use XZ-compression in the output journal (default: yes)\n"
+ " --seal[=BOOL] Use Event sealing in the output journal (default: no)\n"
+ " --key=FILENAME Specify key in PEM format (default:\n"
+ " \"" PRIV_KEY_FILE "\")\n"
+ " --cert=FILENAME Specify certificate in PEM format (default:\n"
+ " \"" CERT_FILE "\")\n"
+ " --trust=FILENAME|all Specify CA certificate or disable checking (default:\n"
+ " \"" TRUST_FILE "\")\n"
+ " --gnutls-log=CATEGORY...\n"
+ " Specify a list of gnutls logging categories\n"
"\n"
"Note: file descriptors from sd_listen_fds() will be consumed, too.\n"
, program_invocation_short_name);
@@ -1168,9 +1167,7 @@ static int parse_argv(int argc, char *argv[]) {
ARG_GETTER,
ARG_SPLIT_MODE,
ARG_COMPRESS,
- ARG_NO_COMPRESS,
ARG_SEAL,
- ARG_NO_SEAL,
ARG_KEY,
ARG_CERT,
ARG_TRUST,
@@ -1187,10 +1184,8 @@ static int parse_argv(int argc, char *argv[]) {
{ "listen-https", required_argument, NULL, ARG_LISTEN_HTTPS },
{ "output", required_argument, NULL, 'o' },
{ "split-mode", required_argument, NULL, ARG_SPLIT_MODE },
- { "compress", no_argument, NULL, ARG_COMPRESS },
- { "no-compress", no_argument, NULL, ARG_NO_COMPRESS },
- { "seal", no_argument, NULL, ARG_SEAL },
- { "no-seal", no_argument, NULL, ARG_NO_SEAL },
+ { "compress", optional_argument, NULL, ARG_COMPRESS },
+ { "seal", optional_argument, NULL, ARG_SEAL },
{ "key", required_argument, NULL, ARG_KEY },
{ "cert", required_argument, NULL, ARG_CERT },
{ "trust", required_argument, NULL, ARG_TRUST },
@@ -1332,16 +1327,31 @@ static int parse_argv(int argc, char *argv[]) {
break;
case ARG_COMPRESS:
- arg_compress = true;
- break;
- case ARG_NO_COMPRESS:
- arg_compress = false;
+ if (optarg) {
+ r = parse_boolean(optarg);
+ if (r < 0) {
+ log_error("Failed to parse --compress= parameter.");
+ return -EINVAL;
+ }
+
+ arg_compress = !!r;
+ } else
+ arg_compress = true;
+
break;
+
case ARG_SEAL:
- arg_seal = true;
- break;
- case ARG_NO_SEAL:
- arg_seal = false;
+ if (optarg) {
+ r = parse_boolean(optarg);
+ if (r < 0) {
+ log_error("Failed to parse --seal= parameter.");
+ return -EINVAL;
+ }
+
+ arg_seal = !!r;
+ } else
+ arg_seal = true;
+
break;
case ARG_GNUTLS_LOG: {
diff --git a/src/journal-remote/journal-upload.c b/src/journal-remote/journal-upload.c
index b178df2..5a30a29 100644
--- a/src/journal-remote/journal-upload.c
+++ b/src/journal-remote/journal-upload.c
@@ -505,24 +505,25 @@ static int parse_config(void) {
static void help(void) {
printf("%s -u URL {FILE|-}...\n\n"
"Upload journal events to a remote server.\n\n"
- "Options:\n"
- " -u --url=URL Upload to this address\n"
- " --key=FILENAME Specify key in PEM format\n"
- " --cert=FILENAME Specify certificate in PEM format\n"
- " --trust=FILENAME Specify CA certificate in PEM format\n"
- " --system Use the system journal\n"
- " --user Use the user journal for the current user\n"
- " -m --merge Use all available journals\n"
- " -M --machine=CONTAINER Operate on local container\n"
- " -D --directory=PATH Use journal files from directory\n"
- " --file=PATH Use this journal file\n"
- " --cursor=CURSOR Start at the specified cursor\n"
- " --after-cursor=CURSOR Start after the specified cursor\n"
- " --[no-]follow Do [not] wait for input\n"
- " --save-state[=FILE] Save uploaded cursors (default \n"
- " " STATE_FILE ")\n"
- " -h --help Show this help and exit\n"
- " --version Print version string and exit\n"
+ " -h --help Show this help\n"
+ " --version Show package version\n"
+ " -u --url=URL Upload to this address\n"
+ " --key=FILENAME Specify key in PEM format\n"
+ " --cert=FILENAME Specify certificate in PEM format\n"
+ " --trust=FILENAME Specify CA certificate in PEM format\n"
+ " --system Use the system journal\n"
+ " --user Use the user journal for the current user\n"
+ " -m --merge Use all available journals\n"
+ " -M --machine=CONTAINER Operate on local container\n"
+ " -D --directory=PATH Use journal files from directory\n"
+ " --file=PATH Use this journal file\n"
+ " --cursor=CURSOR Start at the specified cursor\n"
+ " --after-cursor=CURSOR Start after the specified cursor\n"
+ " --follow[=BOOL] Do [not] wait for input\n"
+ " --save-state[=FILE] Save uploaded cursors (default \n"
+ " " STATE_FILE ")\n"
+ " -h --help Show this help and exit\n"
+ " --version Print version string and exit\n"
, program_invocation_short_name);
}
@@ -538,7 +539,6 @@ static int parse_argv(int argc, char *argv[]) {
ARG_CURSOR,
ARG_AFTER_CURSOR,
ARG_FOLLOW,
- ARG_NO_FOLLOW,
ARG_SAVE_STATE,
};
@@ -557,8 +557,7 @@ static int parse_argv(int argc, char *argv[]) {
{ "file", required_argument, NULL, ARG_FILE },
{ "cursor", required_argument, NULL, ARG_CURSOR },
{ "after-cursor", required_argument, NULL, ARG_AFTER_CURSOR },
- { "follow", no_argument, NULL, ARG_FOLLOW },
- { "no-follow", no_argument, NULL, ARG_NO_FOLLOW },
+ { "follow", optional_argument, NULL, ARG_FOLLOW },
{ "save-state", optional_argument, NULL, ARG_SAVE_STATE },
{}
};
@@ -675,11 +674,17 @@ static int parse_argv(int argc, char *argv[]) {
break;
case ARG_FOLLOW:
- arg_follow = true;
- break;
+ if (optarg) {
+ r = parse_boolean(optarg);
+ if (r < 0) {
+ log_error("Failed to parse --follow= parameter.");
+ return -EINVAL;
+ }
+
+ arg_follow = !!r;
+ } else
+ arg_follow = true;
- case ARG_NO_FOLLOW:
- arg_follow = false;
break;
case ARG_SAVE_STATE:
diff --git a/src/resolve-host/resolve-host.c b/src/resolve-host/resolve-host.c
index c39b582..49049d2 100644
--- a/src/resolve-host/resolve-host.c
+++ b/src/resolve-host/resolve-host.c
@@ -466,14 +466,14 @@ static void help(void) {
" -p --protocol=PROTOCOL Look via protocol\n"
" -t --type=TYPE Query RR with DNS type\n"
" -c --class=CLASS Query RR with DNS class\n"
- " --no-legend Do not print column headers\n"
+ " --legend[=BOOL] Do [not] print column headers\n"
, program_invocation_short_name);
}
static int parse_argv(int argc, char *argv[]) {
enum {
ARG_VERSION = 0x100,
- ARG_NO_LEGEND,
+ ARG_LEGEND,
};
static const struct option options[] = {
@@ -481,7 +481,7 @@ static int parse_argv(int argc, char *argv[]) {
{ "version", no_argument, NULL, ARG_VERSION },
{ "type", required_argument, NULL, 't' },
{ "class", required_argument, NULL, 'c' },
- { "no-legend", no_argument, NULL, ARG_NO_LEGEND },
+ { "legend", optional_argument, NULL, ARG_LEGEND },
{ "protocol", required_argument, NULL, 'p' },
{}
};
@@ -548,8 +548,17 @@ static int parse_argv(int argc, char *argv[]) {
break;
- case ARG_NO_LEGEND:
- arg_legend = false;
+ case ARG_LEGEND:
+ if (optarg) {
+ r = parse_boolean(optarg);
+ if (r < 0) {
+ log_error("Failed to parse --legend= argument");
+ return r;
+ }
+
+ arg_legend = !!r;
+ } else
+ arg_legend = false;
break;
case 'p':
commit f9ffbca2fb1ba7a7854d83439a4644590be0d9e1
Author: Lennart Poettering <lennart at poettering.net>
Date: Wed Aug 20 00:14:09 2014 +0200
README: mention the new optional libidn dependency
diff --git a/README b/README
index 171c76d..d47ea45 100644
--- a/README
+++ b/README
@@ -122,6 +122,7 @@ REQUIREMENTS:
libqrencode (optional)
libmicrohttpd (optional)
libpython (optional)
+ libidn (optional)
gobject-introspection > 1.40.0 (optional)
elfutils >= 158 (optional)
make, gcc, and similar tools
commit 01da80b1aa0e21f8785d467afc295e37fd00ffa1
Author: Lennart Poettering <lennart at poettering.net>
Date: Tue Aug 19 23:37:16 2014 +0200
update NEWS
diff --git a/NEWS b/NEWS
index 6527967..7dad765 100644
--- a/NEWS
+++ b/NEWS
@@ -101,7 +101,9 @@ CHANGES WITH 216:
3.17 memfd subsystem instead of the old kdbus-specific one.
* systemd-networkd's DHCP client and server now support
- FORCERENEW.
+ FORCERENEW. There are also new configuration options to
+ configure the vendor client identifier and broadcast mode
+ for DHCP.
* systemd will no longer inform the kernel about the current
timezone, as this is necessarily incorrect and racy as the
@@ -175,6 +177,13 @@ CHANGES WITH 216:
boot. Alternatively it may also be used to provision these
things offline on OS images installed into directories.
+ * The default sysctl.d/ snippets will now set
+
+ net.ipv4.conf.default.promote_secondaries=1
+
+ This has the benefit of no flushing secondary IP addresses
+ when primary addresses are removed.
+
Contributions from: Ansgar Burchardt, Bastien Nocera, Colin
Walters, Dan Dedrick, Daniel Buch, Daniel Korostil, Daniel
Mack, Dan Williams, Dave Reisner, David Herrmann, Denis
More information about the systemd-commits
mailing list