chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
strv: multiple cleanups
[elogind.git]
/
src
/
sysctl
/
sysctl.c
diff --git
a/src/sysctl/sysctl.c
b/src/sysctl/sysctl.c
index b5670dbb8659292871bd6d49d68930f6651fe897..57112a7ef9eaf23c33f402f20948cb897f54f15e 100644
(file)
--- a/
src/sysctl/sysctl.c
+++ b/
src/sysctl/sysctl.c
@@
-30,11
+30,11
@@
#include "log.h"
#include "strv.h"
#include "util.h"
#include "log.h"
#include "strv.h"
#include "util.h"
-#include "strv.h"
#include "hashmap.h"
#include "path-util.h"
#include "conf-files.h"
#include "fileio.h"
#include "hashmap.h"
#include "path-util.h"
#include "conf-files.h"
#include "fileio.h"
+#include "build.h"
static char **arg_prefixes = NULL;
static char **arg_prefixes = NULL;
@@
-132,7
+132,7
@@
static int parse_file(Hashmap *sysctl_options, const char *path, bool ignore_eno
return r;
}
return r;
}
- log_debug("parse: %s
\n
", path);
+ log_debug("parse: %s", path);
while (!feof(f)) {
char l[LINE_MAX], *p, *value, *new_value, *property, *existing;
void *v;
while (!feof(f)) {
char l[LINE_MAX], *p, *value, *new_value, *property, *existing;
void *v;
@@
-205,6
+205,7
@@
static int help(void) {
printf("%s [OPTIONS...] [CONFIGURATION FILE...]\n\n"
"Applies kernel sysctl settings.\n\n"
" -h --help Show this help\n"
printf("%s [OPTIONS...] [CONFIGURATION FILE...]\n\n"
"Applies kernel sysctl settings.\n\n"
" -h --help Show this help\n"
+ " --version Show package version\n"
" --prefix=PATH Only apply rules that apply to paths with the specified prefix\n",
program_invocation_short_name);
" --prefix=PATH Only apply rules that apply to paths with the specified prefix\n",
program_invocation_short_name);
@@
-214,13
+215,15
@@
static int help(void) {
static int parse_argv(int argc, char *argv[]) {
enum {
static int parse_argv(int argc, char *argv[]) {
enum {
+ ARG_VERSION = 0x100,
ARG_PREFIX
};
static const struct option options[] = {
{ "help", no_argument, NULL, 'h' },
ARG_PREFIX
};
static const struct option options[] = {
{ "help", no_argument, NULL, 'h' },
+ { "version", no_argument, NULL, ARG_VERSION },
{ "prefix", required_argument, NULL, ARG_PREFIX },
{ "prefix", required_argument, NULL, ARG_PREFIX },
- {
NULL, 0, NULL, 0
}
+ {}
};
int c;
};
int c;
@@
-233,7
+236,11
@@
static int parse_argv(int argc, char *argv[]) {
switch (c) {
case 'h':
switch (c) {
case 'h':
- help();
+ return help();
+
+ case ARG_VERSION:
+ puts(PACKAGE_STRING);
+ puts(SYSTEMD_FEATURES);
return 0;
case ARG_PREFIX: {
return 0;
case ARG_PREFIX: {
@@
-244,13
+251,9
@@
static int parse_argv(int argc, char *argv[]) {
if (*p == '.')
*p = '/';
if (*p == '.')
*p = '/';
- l = strv_append(arg_prefixes, optarg);
- if (!l)
+ if (strv_extend(&arg_prefixes, optarg) < 0)
return log_oom();
return log_oom();
- strv_free(arg_prefixes);
- arg_prefixes = l;
-
break;
}
break;
}
@@
-258,8
+261,7
@@
static int parse_argv(int argc, char *argv[]) {
return -EINVAL;
default:
return -EINVAL;
default:
- log_error("Unknown option code %c", c);
- return -EINVAL;
+ assert_not_reached("Unhandled option");
}
}
}
}