/mandos/release

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/release

« back to all changes in this revision

Viewing changes to mandos.service

Convert some programs to use the exit codes from <sysexits.h>.  Change
all programs using the "argp" parsing functions to use them correctly;
checking return value, using argp_error() to report parse errors etc.

* plugin-runner.c: Use <sysexits.h> exit codes.  Always use fallback,
                   even on option errors, except for "--help", etc.
  (getplugin): Make sure "errno" is set correctly on return.
  (main): Declare our own "--help", "--usage", and "--version"
          options which do not cause the fallback to be invoked.
          In all other options, use fallback on any error.
  (parse_opt, parse_opt_config_file): Reset errno at start and return
                                      errno.  No need to check "arg"
                                      for NULL.  New "--help",
                                      "--usage", and "--version"
                                      options.
  (parse_opt): Accept empty string as global option.  Do not print
               errors which will be detected and reported later.  Do
               "argp_error()" on parse error or empty plugin names.
* plugins.d/mandos-client.c: Use <sysexits.h> exit codes.  Do not
                             return successful exit code on "--help",
                             etc. since this would give the wrong
                             message to "plugin-runner".
  (main): Declare our own "--help", "--usage", and "--version"
          options which do not return a successful exit code.
  (parse_opt): Reset errno at start and return errno.  Do
               "argp_error()" on parse errors.  New "--help",
               "--usage", and "--version" options.
* plugins.d/password-prompt.c: Use exit codes from <sysexits.h>.  Do
                               not return successful exit code on
                               "--help", etc. since this would give
                               the wrong message to "plugin-runner".
  (main): Declare our own "--help", "--usage", and "--version" options
          which do not return a successful exit code.  Do
          close(STDOUT_FILENO) after writing to check its return code.
  (parse_opt): Reset errno at start and return errno.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
[Unit]
2
 
Description=Server of encrypted passwords to Mandos clients
3
 
Documentation=man:intro(8mandos) man:mandos(8)
4
 
 
5
 
[Service]
6
 
Type=simple
7
 
## Type=dbus is not appropriate, because Mandos also needs to announce
8
 
## its ZeroConf service and be reachable on the network.
9
 
#Type=dbus
10
 
## Can't set the D-Bus name since we aren't Type=dbus
11
 
#BusName=se.recompile.Mandos
12
 
ExecStart=/usr/sbin/mandos --foreground
13
 
Restart=always
14
 
KillMode=mixed
15
 
## Using socket activation won't work either, because systemd always
16
 
## does bind() on the socket, and also won't announce the ZeroConf
17
 
## service.
18
 
#ExecStart=/usr/sbin/mandos --foreground --socket=0
19
 
#StandardInput=socket
20
 
 
21
 
[Install]
22
 
WantedBy=multi-user.target