diff options
author | Michal Schmidt <mschmidt@redhat.com> | 2011-04-03 18:16:54 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2011-04-03 22:16:23 +0200 |
commit | 41584525cf0a9d3a8bfb76008a3fc663b86bfdde (patch) | |
tree | 4b793913e6a907029048f2f058973caabc0e53c6 /src | |
parent | 8fb81fa7844387377f79cf11d1bf48224a928ba7 (diff) |
load-fragment: unify config_parse_condition_{kernel, virt}
They only differ in the condition type, otherwise the code is identical.
Replace them with a more generic config_parse_condition_string().
Diffstat (limited to 'src')
-rw-r--r-- | src/load-fragment.c | 44 |
1 files changed, 6 insertions, 38 deletions
diff --git a/src/load-fragment.c b/src/load-fragment.c index 05d858e86a..cb8c250891 100644 --- a/src/load-fragment.c +++ b/src/load-fragment.c @@ -1479,39 +1479,7 @@ static int config_parse_condition_path( return 0; } -static int config_parse_condition_kernel( - const char *filename, - unsigned line, - const char *section, - const char *lvalue, - int ltype, - const char *rvalue, - void *data, - void *userdata) { - - Unit *u = data; - bool trigger, negate; - Condition *c; - - assert(filename); - assert(lvalue); - assert(rvalue); - assert(data); - - if ((trigger = rvalue[0] == '|')) - rvalue++; - - if ((negate = rvalue[0] == '!')) - rvalue++; - - if (!(c = condition_new(CONDITION_KERNEL_COMMAND_LINE, rvalue, trigger, negate))) - return -ENOMEM; - - LIST_PREPEND(Condition, conditions, u->meta.conditions, c); - return 0; -} - -static int config_parse_condition_virt( +static int config_parse_condition_string( const char *filename, unsigned line, const char *section, @@ -1521,6 +1489,7 @@ static int config_parse_condition_virt( void *data, void *userdata) { + ConditionType cond = ltype; Unit *u = data; bool trigger, negate; Condition *c; @@ -1536,7 +1505,7 @@ static int config_parse_condition_virt( if ((negate = rvalue[0] == '!')) rvalue++; - if (!(c = condition_new(CONDITION_VIRTUALIZATION, rvalue, trigger, negate))) + if (!(c = condition_new(cond, rvalue, trigger, negate))) return -ENOMEM; LIST_PREPEND(Condition, conditions, u->meta.conditions, c); @@ -1756,9 +1725,8 @@ static void dump_items(FILE *f, const ConfigItem *items) { { config_parse_notify_access, "ACCESS" }, { config_parse_ip_tos, "TOS" }, { config_parse_condition_path, "CONDITION" }, - { config_parse_condition_kernel, "CONDITION" }, + { config_parse_condition_string, "CONDITION" }, { config_parse_condition_null, "CONDITION" }, - { config_parse_condition_virt, "CONDITION" }, }; assert(f); @@ -1883,8 +1851,8 @@ static int load_from_path(Unit *u, const char *path) { { "ConditionPathExists", config_parse_condition_path, CONDITION_PATH_EXISTS, u, "Unit" }, { "ConditionPathIsDirectory", config_parse_condition_path, CONDITION_PATH_IS_DIRECTORY, u, "Unit" }, { "ConditionDirectoryNotEmpty", config_parse_condition_path, CONDITION_DIRECTORY_NOT_EMPTY, u, "Unit" }, - { "ConditionKernelCommandLine", config_parse_condition_kernel, 0, u, "Unit" }, - { "ConditionVirtualization",config_parse_condition_virt, 0, u, "Unit" }, + { "ConditionKernelCommandLine", config_parse_condition_string, CONDITION_KERNEL_COMMAND_LINE, u, "Unit" }, + { "ConditionVirtualization", config_parse_condition_string, CONDITION_VIRTUALIZATION, u, "Unit" }, { "ConditionNull", config_parse_condition_null, 0, u, "Unit" }, { "PIDFile", config_parse_path, 0, &u->service.pid_file, "Service" }, |