/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 plugins.d/askpass-fifo.xml

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
<?xml version="1.0" encoding="UTF-8"?>
 
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
 
3
        "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 
4
<!ENTITY COMMANDNAME "askpass-fifo">
 
5
<!ENTITY TIMESTAMP "2009-01-04">
 
6
<!ENTITY % common SYSTEM "../common.ent">
 
7
%common;
 
8
]>
 
9
 
 
10
<refentry xmlns:xi="http://www.w3.org/2001/XInclude">
 
11
  <refentryinfo>
 
12
    <title>Mandos Manual</title>
 
13
    <!-- NWalsh’s docbook scripts use this to generate the footer: -->
 
14
    <productname>Mandos</productname>
 
15
    <productnumber>&version;</productnumber>
 
16
    <date>&TIMESTAMP;</date>
 
17
    <authorgroup>
 
18
      <author>
 
19
        <firstname>Björn</firstname>
 
20
        <surname>Påhlsson</surname>
 
21
        <address>
 
22
          <email>belorn@fukt.bsnet.se</email>
 
23
        </address>
 
24
      </author>
 
25
      <author>
 
26
        <firstname>Teddy</firstname>
 
27
        <surname>Hogeborn</surname>
 
28
        <address>
 
29
          <email>teddy@fukt.bsnet.se</email>
 
30
        </address>
 
31
      </author>
 
32
    </authorgroup>
 
33
    <copyright>
 
34
      <year>2008</year>
 
35
      <year>2009</year>
 
36
      <holder>Teddy Hogeborn</holder>
 
37
      <holder>Björn Påhlsson</holder>
 
38
    </copyright>
 
39
    <xi:include href="../legalnotice.xml"/>
 
40
  </refentryinfo>
 
41
  
 
42
  <refmeta>
 
43
    <refentrytitle>&COMMANDNAME;</refentrytitle>
 
44
    <manvolnum>8mandos</manvolnum>
 
45
  </refmeta>
 
46
  
 
47
  <refnamediv>
 
48
    <refname><command>&COMMANDNAME;</command></refname>
 
49
    <refpurpose>Mandos plugin to get a password from a
 
50
    FIFO.</refpurpose>
 
51
  </refnamediv>
 
52
  
 
53
  <refsynopsisdiv>
 
54
    <cmdsynopsis>
 
55
      <command>&COMMANDNAME;</command>
 
56
    </cmdsynopsis>
 
57
  </refsynopsisdiv>
 
58
  
 
59
  <refsect1 id="description">
 
60
    <title>DESCRIPTION</title>
 
61
    <para>
 
62
      This program reads a password from a <acronym>FIFO</acronym> and
 
63
      outputs it to standard output.
 
64
    </para>
 
65
    <para>
 
66
      This program is not very useful on its own.  This program is
 
67
      really meant to run as a plugin in the <application
 
68
      >Mandos</application> client-side system, where it is used as a
 
69
      fallback and alternative to retrieving passwords from a
 
70
      <application >Mandos</application> server.
 
71
    </para>
 
72
    <para>
 
73
      This program is meant to be imitate a feature of the
 
74
      <command>askpass</command> program, so that programs written to
 
75
      interface with it can keep working under the
 
76
      <application>Mandos</application> system.
 
77
    </para>
 
78
  </refsect1>
 
79
  
 
80
  <refsect1 id="options">
 
81
    <title>OPTIONS</title>
 
82
    <para>
 
83
      This program takes no options.
 
84
    </para>
 
85
  </refsect1>
 
86
  
 
87
  <refsect1 id="exit_status">
 
88
    <title>EXIT STATUS</title>
 
89
    <para>
 
90
      If exit status is 0, the output from the program is the password
 
91
      as it was read.  Otherwise, if exit status is other than 0, the
 
92
      program was interrupted or encountered an error, and any output
 
93
      so far could be corrupt and/or truncated, and should therefore
 
94
      be ignored.
 
95
    </para>
 
96
  </refsect1>
 
97
  
 
98
  <refsect1 id="files">
 
99
    <title>FILES</title>
 
100
    <variablelist>
 
101
      <varlistentry>
 
102
        <term><filename>/lib/cryptsetup/passfifo</filename></term>
 
103
        <listitem>
 
104
          <para>
 
105
            This is the <acronym>FIFO</acronym> where this program
 
106
            will read the password.  If it does not exist, it will be
 
107
            created.
 
108
          </para>
 
109
        </listitem>
 
110
      </varlistentry>
 
111
    </variablelist>
 
112
  </refsect1>
 
113
  
 
114
  <refsect1 id="example">
 
115
    <title>EXAMPLE</title>
 
116
    <para>
 
117
      Note that normally, this program will not be invoked directly,
 
118
      but instead started by the Mandos <citerefentry><refentrytitle
 
119
      >plugin-runner</refentrytitle><manvolnum>8mandos</manvolnum>
 
120
      </citerefentry>.
 
121
    </para>
 
122
    <informalexample>
 
123
      <para>
 
124
        This program takes no options.
 
125
      </para>
 
126
      <para>
 
127
        <userinput>&COMMANDNAME;</userinput>
 
128
      </para>
 
129
    </informalexample>
 
130
  </refsect1>
 
131
  
 
132
  <refsect1 id="security">
 
133
    <title>SECURITY</title>
 
134
    <para>
 
135
      The only thing that could be considered worthy of note is
 
136
      this:  This program is meant to be run by <citerefentry>
 
137
      <refentrytitle>plugin-runner</refentrytitle><manvolnum
 
138
      >8mandos</manvolnum></citerefentry>, and will, when run
 
139
      standalone, outside, in a normal environment, immediately output
 
140
      on its standard output any presumably secret password it just
 
141
      received.  Therefore, when running this program standalone
 
142
      (which should never normally be done), take care not to type in
 
143
      any real secret password by force of habit, since it would then
 
144
      immediately be shown as output.
 
145
    </para>
 
146
  </refsect1>
 
147
  
 
148
  <refsect1 id="see_also">
 
149
    <title>SEE ALSO</title>
 
150
    <para>
 
151
      <citerefentry><refentrytitle>fifo</refentrytitle>
 
152
      <manvolnum>7</manvolnum></citerefentry>,
 
153
      <citerefentry><refentrytitle>plugin-runner</refentrytitle>
 
154
      <manvolnum>8mandos</manvolnum></citerefentry>
 
155
    </para>
 
156
  </refsect1>
 
157
</refentry>
 
158
<!-- Local Variables: -->
 
159
<!-- time-stamp-start: "<!ENTITY TIMESTAMP [\"']" -->
 
160
<!-- time-stamp-end: "[\"']>" -->
 
161
<!-- time-stamp-format: "%:y-%02m-%02d" -->
 
162
<!-- End: -->