- { "Names", config_parse_names, &n->meta.names, "Meta" },
- { "Description", config_parse_string, &n->meta.description, "Meta" },
- { "Requires", config_parse_deps, n->meta.dependencies+NAME_REQUIRES, "Meta" },
- { "SoftRequires", config_parse_deps, n->meta.dependencies+NAME_SOFT_REQUIRES, "Meta" },
- { "Wants", config_parse_deps, n->meta.dependencies+NAME_WANTS, "Meta" },
- { "Requisite", config_parse_deps, n->meta.dependencies+NAME_REQUISITE, "Meta" },
- { "SoftRequisite", config_parse_deps, n->meta.dependencies+NAME_SOFT_REQUISITE, "Meta" },
- { "Conflicts", config_parse_deps, n->meta.dependencies+NAME_CONFLICTS, "Meta" },
- { "Before", config_parse_deps, n->meta.dependencies+NAME_BEFORE, "Meta" },
- { "After", config_parse_deps, n->meta.dependencies+NAME_AFTER, "Meta" },
- { "Listen", config_parse_listen, &n->socket.address, "Socket" },
- { "Type", config_parse_type, &n->socket.address.type, "Socket" },
+ { "Names", config_parse_names, &n->meta.names, "Meta" },
+ { "Description", config_parse_string, &n->meta.description, "Meta" },
+ { "Requires", config_parse_deps, UINT_TO_PTR(NAME_REQUIRES), "Meta" },
+ { "SoftRequires", config_parse_deps, UINT_TO_PTR(NAME_SOFT_REQUIRES), "Meta" },
+ { "Wants", config_parse_deps, UINT_TO_PTR(NAME_WANTS), "Meta" },
+ { "Requisite", config_parse_deps, UINT_TO_PTR(NAME_REQUISITE), "Meta" },
+ { "SoftRequisite", config_parse_deps, UINT_TO_PTR(NAME_SOFT_REQUISITE), "Meta" },
+ { "Conflicts", config_parse_deps, UINT_TO_PTR(NAME_CONFLICTS), "Meta" },
+ { "Before", config_parse_deps, UINT_TO_PTR(NAME_BEFORE), "Meta" },
+ { "After", config_parse_deps, UINT_TO_PTR(NAME_AFTER), "Meta" },
+
+ { "PIDFile", config_parse_path, &n->service.pid_file, "Service" },
+ { "ExecStartPre", config_parse_exec, &n->service.exec_command[SERVICE_EXEC_START_PRE], "Service" },
+ { "ExecStart", config_parse_exec, &n->service.exec_command[SERVICE_EXEC_START], "Service" },
+ { "ExecStartPost", config_parse_exec, &n->service.exec_command[SERVICE_EXEC_START_POST], "Service" },
+ { "ExecReload", config_parse_exec, &n->service.exec_command[SERVICE_EXEC_RELOAD], "Service" },
+ { "ExecStop", config_parse_exec, &n->service.exec_command[SERVICE_EXEC_STOP], "Service" },
+ { "ExecStopPost", config_parse_exec, &n->service.exec_command[SERVICE_EXEC_STOP_POST], "Service" },
+ { "RestartSec", config_parse_usec, &n->service.restart_usec, "Service" },
+ { "TimeoutSec", config_parse_usec, &n->service.timeout_usec, "Service" },
+ { "Type", config_parse_service_type, &n->service, "Service" },
+ { "Restart", config_parse_service_restart, &n->service, "Service" },
+ EXEC_CONTEXT_CONFIG_ITEMS(n->service.exec_context, "Service"),
+
+ { "ListenStream", config_parse_listen, &n->socket, "Socket" },
+ { "ListenDatagram", config_parse_listen, &n->socket, "Socket" },
+ { "ListenSequentialPacket", config_parse_listen, &n->socket, "Socket" },
+ { "ListenFIFO", config_parse_listen, &n->socket, "Socket" },
+ { "BindIPv6Only", config_parse_socket_bind, &n->socket, "Socket" },
+ { "Backlog", config_parse_unsigned, &n->socket.backlog, "Socket" },
+ { "ExecStartPre", config_parse_exec, &n->service.exec_command[SOCKET_EXEC_START_PRE], "Socket" },
+ { "ExecStartPost", config_parse_exec, &n->service.exec_command[SOCKET_EXEC_START_POST], "Socket" },
+ { "ExecStopPre", config_parse_exec, &n->service.exec_command[SOCKET_EXEC_STOP_PRE], "Socket" },
+ { "ExecStopPost", config_parse_exec, &n->service.exec_command[SOCKET_EXEC_STOP_POST], "Socket" },
+ EXEC_CONTEXT_CONFIG_ITEMS(n->socket.exec_context, "Socket"),
+
+ EXEC_CONTEXT_CONFIG_ITEMS(n->automount.exec_context, "Automount"),
+