X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=load-fragment.c;h=deebba3e82f34bb11c0c1aec85048e48c8200fb5;hp=ff3b29c084a7a0c3f25f451dbec8d5dac002497c;hb=ea5652c296f325eceea351c19bf81a783cea4537;hpb=24a6e4a401f0be0c4cd67621186792d0b7e401a1 diff --git a/load-fragment.c b/load-fragment.c index ff3b29c08..deebba3e8 100644 --- a/load-fragment.c +++ b/load-fragment.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "unit.h" #include "strv.h" @@ -150,6 +151,38 @@ static int config_parse_names( return 0; } +static int config_parse_description( + const char *filename, + unsigned line, + const char *section, + const char *lvalue, + const char *rvalue, + void *data, + void *userdata) { + + Unit *u = userdata; + char *k; + + assert(filename); + assert(lvalue); + assert(rvalue); + assert(data); + + if (!(k = unit_full_printf(u, rvalue))) + return -ENOMEM; + + free(u->meta.description); + + if (*k) + u->meta.description = k; + else { + free(k); + u->meta.description = NULL; + } + + return 0; +} + static int config_parse_listen( const char *filename, unsigned line, @@ -1094,7 +1127,11 @@ static void dump_items(FILE *f, const ConfigItem *items) { { config_parse_kill_mode, "KILLMODE" }, { config_parse_listen, "SOCKET [...]" }, { config_parse_socket_bind, "SOCKETBIND" }, - { config_parse_bindtodevice, "NETWORKINTERFACE" } + { config_parse_bindtodevice, "NETWORKINTERFACE" }, + { config_parse_usec, "SECONDS" }, + { config_parse_path_strv, "PATH [...]" }, + { config_parse_mount_flags, "MOUNTFLAG [...]" }, + { config_parse_description, "DESCRIPTION" }, }; assert(f); @@ -1134,7 +1171,8 @@ static int load_from_path(Unit *u, const char *path) { [UNIT_DEVICE] = "Device", [UNIT_MOUNT] = "Mount", [UNIT_AUTOMOUNT] = "Automount", - [UNIT_SNAPSHOT] = "Snapshot" + [UNIT_SNAPSHOT] = "Snapshot", + [UNIT_SWAP] = "Swap" }; #define EXEC_CONTEXT_CONFIG_ITEMS(context, section) \ @@ -1189,7 +1227,7 @@ static int load_from_path(Unit *u, const char *path) { const ConfigItem items[] = { { "Names", config_parse_names, u, "Unit" }, - { "Description", config_parse_string, &u->meta.description, "Unit" }, + { "Description", config_parse_description, u, "Unit" }, { "Requires", config_parse_deps, UINT_TO_PTR(UNIT_REQUIRES), "Unit" }, { "RequiresOverridable", config_parse_deps, UINT_TO_PTR(UNIT_REQUIRES_OVERRIDABLE), "Unit" }, { "Requisite", config_parse_deps, UINT_TO_PTR(UNIT_REQUISITE), "Unit" }, @@ -1249,6 +1287,9 @@ static int load_from_path(Unit *u, const char *path) { { "Where", config_parse_path, &u->automount.where, "Automount" }, + { "What", config_parse_path, &u->swap.parameters_fragment.what, "Swap" }, + { "Priority", config_parse_int, &u->swap.parameters_fragment.priority, "Swap" }, + { NULL, NULL, NULL, NULL } };