chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libsystemd: fix compiler warning in property_get_set_callbacks_run()
[elogind.git]
/
src
/
shared
/
conf-parser.c
diff --git
a/src/shared/conf-parser.c
b/src/shared/conf-parser.c
index 6085d33391baeb2d4f51e3e017813eabbef57575..d5a639e874a3138bfe040977f1e7fa46a1da905c 100644
(file)
--- a/
src/shared/conf-parser.c
+++ b/
src/shared/conf-parser.c
@@
-24,6
+24,7
@@
#include <errno.h>
#include <assert.h>
#include <stdlib.h>
#include <errno.h>
#include <assert.h>
#include <stdlib.h>
+#include <netinet/ether.h>
#include "conf-parser.h"
#include "util.h"
#include "conf-parser.h"
#include "util.h"
@@
-155,6
+156,7
@@
static int next_assignment(const char *unit,
ConfigItemLookup lookup,
void *table,
const char *section,
ConfigItemLookup lookup,
void *table,
const char *section,
+ unsigned section_line,
const char *lvalue,
const char *rvalue,
bool relaxed,
const char *lvalue,
const char *rvalue,
bool relaxed,
@@
-177,8
+179,8
@@
static int next_assignment(const char *unit,
if (r > 0) {
if (func)
if (r > 0) {
if (func)
- return func(unit, filename, line, section,
lvalue, ltyp
e,
- rvalue, data, userdata);
+ return func(unit, filename, line, section,
section_lin
e,
+
lvalue, ltype,
rvalue, data, userdata);
return 0;
}
return 0;
}
@@
-201,6
+203,7
@@
static int parse_line(const char* unit,
bool relaxed,
bool allow_include,
char **section,
bool relaxed,
bool allow_include,
char **section,
+ unsigned *section_line,
char *l,
void *userdata) {
char *l,
void *userdata) {
@@
-259,10
+262,13
@@
static int parse_line(const char* unit,
"Unknown section '%s'. Ignoring.", n);
free(n);
"Unknown section '%s'. Ignoring.", n);
free(n);
+ free(*section);
*section = NULL;
*section = NULL;
+ *section_line = 0;
} else {
free(*section);
*section = n;
} else {
free(*section);
*section = n;
+ *section_line = line;
}
return 0;
}
return 0;
@@
-292,6
+298,7
@@
static int parse_line(const char* unit,
lookup,
table,
*section,
lookup,
table,
*section,
+ *section_line,
strstrip(l),
strstrip(e),
relaxed,
strstrip(l),
strstrip(e),
relaxed,
@@
-311,7
+318,7
@@
int config_parse(const char *unit,
_cleanup_free_ char *section = NULL, *continuation = NULL;
_cleanup_fclose_ FILE *ours = NULL;
_cleanup_free_ char *section = NULL, *continuation = NULL;
_cleanup_fclose_ FILE *ours = NULL;
- unsigned line = 0;
+ unsigned line = 0
, section_line = 0
;
int r;
assert(filename);
int r;
assert(filename);
@@
-325,6
+332,8
@@
int config_parse(const char *unit,
}
}
}
}
+ fd_warn_permissions(filename, fileno(f));
+
while (!feof(f)) {
char l[LINE_MAX], *p, *c = NULL, *e;
bool escaped = false;
while (!feof(f)) {
char l[LINE_MAX], *p, *c = NULL, *e;
bool escaped = false;
@@
-380,6
+389,7
@@
int config_parse(const char *unit,
relaxed,
allow_include,
§ion,
relaxed,
allow_include,
§ion,
+ §ion_line,
p,
userdata);
free(c);
p,
userdata);
free(c);
@@
-396,6
+406,7
@@
int config_parse(const char *unit,
const char *filename, \
unsigned line, \
const char *section, \
const char *filename, \
unsigned line, \
const char *section, \
+ unsigned section_line, \
const char *lvalue, \
int ltype, \
const char *rvalue, \
const char *lvalue, \
int ltype, \
const char *rvalue, \
@@
-432,6
+443,7
@@
int config_parse_bytes_size(const char* unit,
const char *filename,
unsigned line,
const char *section,
const char *filename,
unsigned line,
const char *section,
+ unsigned section_line,
const char *lvalue,
int ltype,
const char *rvalue,
const char *lvalue,
int ltype,
const char *rvalue,
@@
-463,6
+475,7
@@
int config_parse_bytes_off(const char* unit,
const char *filename,
unsigned line,
const char *section,
const char *filename,
unsigned line,
const char *section,
+ unsigned section_line,
const char *lvalue,
int ltype,
const char *rvalue,
const char *lvalue,
int ltype,
const char *rvalue,
@@
-491,6
+504,7
@@
int config_parse_bool(const char* unit,
const char *filename,
unsigned line,
const char *section,
const char *filename,
unsigned line,
const char *section,
+ unsigned section_line,
const char *lvalue,
int ltype,
const char *rvalue,
const char *lvalue,
int ltype,
const char *rvalue,
@@
-516,34
+530,32
@@
int config_parse_bool(const char* unit,
return 0;
}
return 0;
}
-int config_parse_tristate(const char *unit,
- const char *filename,
- unsigned line,
- const char *section,
- const char *lvalue,
- int ltype,
- const char *rvalue,
- void *data,
- void *userdata) {
+int config_parse_show_status(const char* unit,
+ const char *filename,
+ unsigned line,
+ const char *section,
+ unsigned section_line,
+ const char *lvalue,
+ int ltype,
+ const char *rvalue,
+ void *data,
+ void *userdata) {
int k;
int k;
-
int
*b = data;
+
ShowStatus
*b = data;
assert(filename);
assert(lvalue);
assert(rvalue);
assert(data);
assert(filename);
assert(lvalue);
assert(rvalue);
assert(data);
- /* Tristates are like booleans, but can also take the 'default' value, i.e. "-1" */
-
- k = parse_boolean(rvalue);
+ k = parse_show_status(rvalue, b);
if (k < 0) {
log_syntax(unit, LOG_ERR, filename, line, -k,
if (k < 0) {
log_syntax(unit, LOG_ERR, filename, line, -k,
- "Failed to parse
boolean value
, ignoring: %s", rvalue);
+ "Failed to parse
show status setting
, ignoring: %s", rvalue);
return 0;
}
return 0;
}
- *b = !!k;
return 0;
}
return 0;
}
@@
-551,6
+563,7
@@
int config_parse_string(const char *unit,
const char *filename,
unsigned line,
const char *section,
const char *filename,
unsigned line,
const char *section,
+ unsigned section_line,
const char *lvalue,
int ltype,
const char *rvalue,
const char *lvalue,
int ltype,
const char *rvalue,
@@
-591,6
+604,7
@@
int config_parse_path(const char *unit,
const char *filename,
unsigned line,
const char *section,
const char *filename,
unsigned line,
const char *section,
+ unsigned section_line,
const char *lvalue,
int ltype,
const char *rvalue,
const char *lvalue,
int ltype,
const char *rvalue,
@@
-636,6
+650,7
@@
int config_parse_strv(const char *unit,
const char *filename,
unsigned line,
const char *section,
const char *filename,
unsigned line,
const char *section,
+ unsigned section_line,
const char *lvalue,
int ltype,
const char *rvalue,
const char *lvalue,
int ltype,
const char *rvalue,
@@
-692,6
+707,7
@@
int config_parse_path_strv(const char *unit,
const char *filename,
unsigned line,
const char *section,
const char *filename,
unsigned line,
const char *section,
+ unsigned section_line,
const char *lvalue,
int ltype,
const char *rvalue,
const char *lvalue,
int ltype,
const char *rvalue,
@@
-749,6
+765,7
@@
int config_parse_mode(const char *unit,
const char *filename,
unsigned line,
const char *section,
const char *filename,
unsigned line,
const char *section,
+ unsigned section_line,
const char *lvalue,
int ltype,
const char *rvalue,
const char *lvalue,
int ltype,
const char *rvalue,
@@
-786,6
+803,7
@@
int config_parse_facility(const char *unit,
const char *filename,
unsigned line,
const char *section,
const char *filename,
unsigned line,
const char *section,
+ unsigned section_line,
const char *lvalue,
int ltype,
const char *rvalue,
const char *lvalue,
int ltype,
const char *rvalue,
@@
-816,6
+834,7
@@
int config_parse_level(const char *unit,
const char *filename,
unsigned line,
const char *section,
const char *filename,
unsigned line,
const char *section,
+ unsigned section_line,
const char *lvalue,
int ltype,
const char *rvalue,
const char *lvalue,
int ltype,
const char *rvalue,
@@
-845,6
+864,7
@@
int config_parse_set_status(const char *unit,
const char *filename,
unsigned line,
const char *section,
const char *filename,
unsigned line,
const char *section,
+ unsigned section_line,
const char *lvalue,
int ltype,
const char *rvalue,
const char *lvalue,
int ltype,
const char *rvalue,