<cmdsynopsis>
<command>yazproxy</command>
<arg choice="opt">-a <replaceable>filename</replaceable></arg>
+ <arg choice="opt">-c <replaceable>config</replaceable></arg>
+ <arg choice="opt">-i <replaceable>seconds</replaceable></arg>
<arg choice="opt">-l <replaceable>filename</replaceable></arg>
<arg choice="opt">-m <replaceable>num</replaceable></arg>
- <arg choice="opt">-v <replaceable>level</replaceable></arg>
- <arg choice="opt">-t <replaceable>target</replaceable></arg>
+ <arg choice="opt">-n <replaceable>num</replaceable></arg>
<arg choice="opt">-o <replaceable>level</replaceable></arg>
- <arg choice="opt">-i <replaceable>seconds</replaceable></arg>
- <arg choice="opt">-T <replaceable>seconds</replaceable></arg>
+ <arg choice="opt">-t <replaceable>target</replaceable></arg>
<arg choice="opt">-p <replaceable>pidfile</replaceable></arg>
+ <arg choice="opt">-T <replaceable>seconds</replaceable></arg>
<arg choice="opt">-u <replaceable>userid</replaceable></arg>
- <arg choice="opt">-c <replaceable>config</replaceable></arg>
+ <arg choice="opt">-v <replaceable>level</replaceable></arg>
+ <arg choice="opt">-X</arg>
<arg choice="req"><replaceable>host</replaceable>:<replaceable>port</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
standard output.
</para></listitem>
</varlistentry>
+ <varlistentry><term>-c <replaceable>config</replaceable></term>
+ <listitem><para>
+ Specifies config filename. Configuration is in XML
+ and is only supported if the YAZ proxy is compiled with
+ libxml2.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry><term>-i <replaceable>seconds</replaceable></term>
+ <listitem><para>
+ Specifies in seconds the idle time for communication between
+ client and proxy. If a connection is inactive for this long
+ it will be closed. Default: 600 seconds (10 minutes).
+ </para></listitem>
+ </varlistentry>
<varlistentry><term>-l <replaceable>filename</replaceable></term>
<listitem><para>
Specifies the name of a file to which to write a log of the
</varlistentry>
<varlistentry><term>-m <replaceable>num</replaceable></term>
<listitem><para>
- Specifies the maximum number of connections to be cached
- [default 50].
+ Specifies the maximum number of client connections to be
+ offered [default 150].
</para></listitem>
</varlistentry>
- <varlistentry><term>-v <replaceable>level</replaceable></term>
+ <varlistentry><term>-n <replaceable>num</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>.
+ Sets maximum number of open files to <replaceable>num</replaceable>.
+ This is only available on systems that offers the
+ <function>setrlimit(2)</function> call.
</para></listitem>
</varlistentry>
<varlistentry><term>-o <replaceable>level</replaceable></term>
features. By default optimization is enabled (value 1).
</para></listitem>
</varlistentry>
- <varlistentry><term>-i <replaceable>seconds</replaceable></term>
+ <varlistentry><term>-p <replaceable>pidfile</replaceable></term>
<listitem><para>
- Specifies in seconds the idle time for communication between
- client and proxy. If a connection is inactive for this long
- it will be closed. Default: 600 seconds (10 minutes).
+ When specified, yazproxy will create <replaceable>pidfile</replaceable>
+ with the process ID of the proxy. The pidfile will be generated
+ before the process changes identity (see option <literal>-u</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>-T <replaceable>seconds</replaceable></term>
it will be closed. Default: 600 seconds (10 minutes).
</para></listitem>
</varlistentry>
- <varlistentry><term>-p <replaceable>pidfile</replaceable></term>
- <listitem><para>
- When specified, yazproxy will create <replaceable>pidfile</replaceable>
- with the process ID of the proxy. The pidfile will be generated
- before the process changes identity (see option <literal>-u</literal>).
- </para></listitem>
- </varlistentry>
<varlistentry><term>-u <replaceable>userid</replaceable></term>
<listitem><para>
When specified, yazproxy will change identity to the user ID
if specified by option <literal>-u</literal>.
</para></listitem>
</varlistentry>
- <varlistentry><term>-c <replaceable>config</replaceable></term>
+ <varlistentry><term>-v <replaceable>level</replaceable></term>
<listitem><para>
- Specifies config filename. Configuration is in XML
- and is only supported if the YAZ proxy is compiled with
- libxml2.
+ 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>-X</term>
+ <listitem><para>
+ Enables debugging mode for the proxy. When specified, the proxy will
+ not fork itself, thus any violations becomes fatal. Useful if
+ you run yazproxy inside <application>gdb</application>.
+ Don't run this in production.
</para></listitem>
</varlistentry>
</variablelist>
-/* $Id: yaz-proxy-main.cpp,v 1.16 2005-06-25 15:58:33 adam Exp $
+/* $Id: yaz-proxy-main.cpp,v 1.17 2005-09-07 09:28:46 adam Exp $
Copyright (c) 1998-2005, Index Data.
This file is part of the yaz-proxy.
void usage(char *prog)
{
- fprintf (stderr, "%s: [-c config] [-l log] [-a log] [-v level] [-t target] "
- "[-u uid] [-p pidfile] @:port\n", prog);
+ fprintf (stderr, "%s: [-a log] [-c config]\n"
+ " [-i sec] [-l log] [-m num] [-n num] [-p pidfile]"
+ " [-t target] [-T sec] [-u uid]\n"
+ " [-v level] [-X] @:port\n", prog);
exit (1);
}
}
addr = arg;
break;
+ case 'a':
+ proxy->set_APDU_log(arg);
+ break;
case 'c':
err = proxy->set_config(arg);
if (err == -2)
exit(1);
}
break;
- case 'a':
- proxy->set_APDU_log(arg);
- break;
- case 't':
- proxy->set_default_target(arg);
- break;
- case 'o':
- proxy->option("optimize", arg);
- break;
- case 'v':
- yaz_log_init_level (yaz_log_mask_str(arg));
+ case 'i':
+ proxy->set_client_idletime(atoi(arg));
break;
case 'l':
yaz_log_init_file (arg);
case 'm':
proxy->set_max_clients(atoi(arg));
break;
- case 'i':
- proxy->set_client_idletime(atoi(arg));
- break;
- case 'T':
- proxy->set_target_idletime(atoi(arg));
- break;
case 'n':
no_limit_files = atoi(arg);
break;
- case 'X':
- proxy->set_debug_mode(1);
- debug = 1;
+ case 'o':
+ proxy->option("optimize", arg);
break;
case 'p':
if (!pid_fname)
pid_fname = xstrdup(arg);
break;
+ case 't':
+ proxy->set_default_target(arg);
+ break;
+ case 'T':
+ proxy->set_target_idletime(atoi(arg));
+ break;
case 'u':
if (!uid)
uid = xstrdup(arg);
break;
+ case 'v':
+ yaz_log_init_level (yaz_log_mask_str(arg));
+ break;
+ case 'X':
+ proxy->set_debug_mode(1);
+ debug = 1;
+ break;
default:
usage(prog);
return 1;