- <refmeta>
- <refentrytitle>yaz-proxy</refentrytitle>
- <manvolnum>8</manvolnum>
- </refmeta>
- <refnamediv>
- <refname>yaz-proxy</refname>
- <refpurpose>The YAZ toolkit's transparent Z39.50 proxy</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <cmdsynopsis>
- <command>yaz-proxy</command>
- <arg choice="opt">-a <replaceable>filename</replaceable></arg>
- <arg choice="opt">-c <replaceable>num</replaceable></arg>
- <arg choice="opt">-v <replaceable>level</replaceable></arg>
- <arg choice="opt">-t <replaceable>target</replaceable></arg>
- <arg choice="opt">-u <replaceable>auth</replaceable></arg>
- <arg choice="opt">-o <replaceable>level</replaceable></arg>
- <arg choice="req"><replaceable>host</replaceable>:<replaceable>port</replaceable></arg>
- </cmdsynopsis>
- </refsynopsisdiv>
-
- <refsect1><title>DESCRIPTION</title>
- <para>
- The proxy runs stand-alone (not from
- <literal>inetd</literal>). The
- <replaceable>host</replaceable>:<replaceable>port</replaceable>
- argument specifies host address to listen to, and the port to
- listen on. Use the host <literal>@</literal>
- to listen for connections coming from any address.
- </para>
- </refsect1>
- <refsect1><title>OPTIONS</title>
- <variablelist>
- <varlistentry><term>-a <replaceable>filename</replaceable></term>
- <listitem><para>
- Specifies the name of a file to which to write a log of the
- APDUs (protocol packets) that pass through the proxy. The
- special filename <literal>-</literal> may be used to indicate
- standard output.
- </para></listitem>
- </varlistentry>
- <varlistentry><term>-c <replaceable>num</replaceable></term>
- <listitem><para>
- Specifies the maximum number of connections to be cached
- [default 50].
- </para></listitem>
- </varlistentry>
- <varlistentry><term>-v <replaceable>level</replaceable></term>
- <listitem><para>
- Sets the logging level. <replaceable>level</replaceable> is
- a comma-separated list of members of the set
- {<literal>fatal</literal>,<literal>debug</literal>,<literal>warn</literal>,<literal>log</literal>,<literal>malloc</literal>,<literal>all</literal>,<literal>none</literal>}.
- </para></listitem>
- </varlistentry>
- <varlistentry><term>-t <replaceable>target</replaceable></term>
- <listitem><para>
- Specifies the default backend target to use when a client
- connects that does not explicitly specify a target in its
- <literal>initRequest</literal>.
- </para></listitem>
- </varlistentry>
- <varlistentry><term>-u <replaceable>auth</replaceable></term>
- <listitem><para>
- Specifies authentication info to be sent to the backend target.
- This is useful if you happen to have an internal target that
- requires authentication, or if the client software does not allow
- you to set it.
- </para></listitem>
- </varlistentry>
- <varlistentry><term>-o <replaceable>level</replaceable></term>
- <listitem><para>
- Sets level for optimization. Use zero to disable; non-zero
- to enable. Handling for this is not fully implemented;
- we will probably use a bit mask to enable/disable specific
- features.
- </para></listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
- <refsect1>
- <title>EXAMPLES</title>
- <para>
- The following command starts the proxy, listening on port
- 9000, with its default backend target set to the Library of
- Congress bibliographic server:
- </para>
- <screen>
- $ yaz-proxy -t z3950.loc.gov:7090 @:9000
- </screen>
- <para>
- The LOC target is sometimes very slow. You can connect to
- it using yaz-client as follows:
- </para>
- <screen>
- $ yaz-client localhost:9000/voyager
- Connecting...Ok.
- Sent initrequest.
- Connection accepted by target.
- ID : 34
- Name : Voyager LMS - Z39.50 Server
- Version: 1.13
- Options: search present
- Elapsed: 7.131197
- Z> f computer
- Sent searchRequest.
- Received SearchResponse.
- Search was a success.
- Number of hits: 10000
- records returned: 0
- Elapsed: 6.695174
- Z> f computer
- Sent searchRequest.
- Received SearchResponse.
- Search was a success.
- Number of hits: 10000
- records returned: 0
- Elapsed: 0.001417
- </screen>
- <para>
- In this test, the second search was more than 4000 times faster
- than the first, because the proxy cached the result of the first
- search and noticed that the second was the same.
- </para>
- <para>
- The YAZ command-line client,
- <literal>yaz-client</literal>,
- allows you to set the backend target in
- the <literal>initRequest</literal> using the
- <literal>-p</literal> option. For example, to connect to
- Index Data's target you could use:
- </para>
- <screen>
- yaz-client -p indexdata.dk localhost:9000/gils
- </screen>
- </refsect1>