/mandos/trunk

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

« back to all changes in this revision

Viewing changes to plugin-runner.xml

  • Committer: Teddy Hogeborn
  • Date: 2016-02-28 10:59:18 UTC
  • Revision ID: teddy@recompile.se-20160228105918-tb8pt2p5j0tkcls3
Handle GnuTLS errors and partial sends in gnutls "module".

* mandos (GnuTLS.E_INTERRUPTED, GnuTLS.E_AGAIN): New.
  (GnuTLS.Error): Set error code as "code" attribute.
  (GnuTLS.ClientSession.send): Handle partial sends with a loop.
  (GnuTLS._retry_on_error): New function.
  (GnuTLS.record_send, GnuTLS.handshake, GnuTLS.bye): Set "errcheck"
                                                      attribute to
                                                    "_retry_on_error".
  (ClientHandler.handle): Remove loop for handling partial sends;
                          GnuTLS.ClientSession.send() will do that.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3
3
        "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4
4
<!ENTITY COMMANDNAME "plugin-runner">
5
 
<!ENTITY TIMESTAMP "2023-04-30">
 
5
<!ENTITY TIMESTAMP "2015-07-20">
6
6
<!ENTITY % common SYSTEM "common.ent">
7
7
%common;
8
8
]>
39
39
      <year>2013</year>
40
40
      <year>2014</year>
41
41
      <year>2015</year>
42
 
      <year>2016</year>
43
 
      <year>2017</year>
44
 
      <year>2018</year>
45
 
      <year>2019</year>
46
42
      <holder>Teddy Hogeborn</holder>
47
43
      <holder>Björn Påhlsson</holder>
48
44
    </copyright>
423
419
    <title>PLUGINS</title>
424
420
    <para>
425
421
      This program will get a password by running a number of
426
 
      <firstterm>plugins</firstterm>, which are executable programs in
427
 
      a directory in the initial <acronym>RAM</acronym> disk
428
 
      environment.  The default directory is
 
422
      <firstterm>plugins</firstterm>, which are simply executable
 
423
      programs in a directory in the initial <acronym>RAM</acronym>
 
424
      disk environment.  The default directory is
429
425
      <filename>/lib/mandos/plugins.d</filename>, but this can be
430
426
      changed with the <option>--plugin-dir</option> option.  The
431
427
      plugins are started in parallel, and the first plugin to output
437
433
    <refsect2 id="writing_plugins">
438
434
      <title>WRITING PLUGINS</title>
439
435
      <para>
440
 
        A plugin is an executable program which prints a password to
441
 
        its standard output and then exits with a successful (zero)
442
 
        exit status.  If the exit status is not zero, any output on
 
436
        A plugin is simply a program which prints a password to its
 
437
        standard output and then exits with a successful (zero) exit
 
438
        status.  If the exit status is not zero, any output on
443
439
        standard output will be ignored by the plugin runner.  Any
444
440
        output on its standard error channel will simply be passed to
445
441
        the standard error of the plugin runner, usually the system
547
543
            </para>
548
544
          </listitem>
549
545
        </varlistentry>
550
 
        <varlistentry>
551
 
          <term><filename class="directory"
552
 
          >/lib/mandos/plugins.d</filename></term>
553
 
          <listitem>
554
 
            <para>
555
 
              The default plugin directory; can be changed by the
556
 
              <option>--plugin-dir</option> option.
557
 
            </para>
558
 
          </listitem>
559
 
        </varlistentry>
560
 
        <varlistentry>
561
 
          <term><filename class="directory"
562
 
          >/lib/mandos/plugin-helpers</filename></term>
563
 
          <listitem>
564
 
            <para>
565
 
              The default plugin helper directory; can be changed by
566
 
              the <option>--plugin-helper-dir</option> option.
567
 
            </para>
568
 
          </listitem>
569
 
        </varlistentry>
570
546
      </variablelist>
571
547
    </para>
572
548
  </refsect1>
577
553
      The <option>--config-file</option> option is ignored when
578
554
      specified from within a configuration file.
579
555
    </para>
580
 
    <xi:include href="bugs.xml"/>
581
556
  </refsect1>
582
557
  
583
558
  <refsect1 id="examples">
628
603
      <para>
629
604
        Read a different configuration file, run plugins from a
630
605
        different directory, specify an alternate plugin helper
631
 
        directory and add four options to the
 
606
        directory and add two options to the
632
607
        <citerefentry><refentrytitle >mandos-client</refentrytitle>
633
608
        <manvolnum>8mandos</manvolnum></citerefentry> plugin:
634
609
      </para>
635
610
      <para>
636
611
 
637
612
<!-- do not wrap this line -->
638
 
<userinput>cd /etc/keys/mandos; &COMMANDNAME;  --config-file=/etc/mandos/plugin-runner.conf --plugin-dir /usr/lib/x86_64-linux-gnu/mandos/plugins.d --plugin-helper-dir /usr/lib/x86_64-linux-gnu/mandos/plugin-helpers --options-for=mandos-client:--pubkey=pubkey.txt,&#x200b;--seckey=seckey.txt,&#x200b;--tls-pubkey=tls-pubkey.pem,&#x200b;--tls-privkey=tls-privkey.pem</userinput>
 
613
<userinput>cd /etc/keys/mandos; &COMMANDNAME;  --config-file=/etc/mandos/plugin-runner.conf --plugin-dir /usr/lib/x86_64-linux-gnu/mandos/plugins.d --plugin-helper-dir /usr/lib/x86_64-linux-gnu/mandos/plugin-helpers --options-for=mandos-client:--pubkey=pubkey.txt,--seckey=seckey.txt</userinput>
639
614
 
640
615
      </para>
641
616
    </informalexample>