More work on iconv test program
[yaz-moved-to-github.git] / doc / frontend.xml
index 7dd7058..297c5f3 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $Id: frontend.xml,v 1.7 2001-10-24 20:12:36 adam Exp $ -->
+<!-- $Id: frontend.xml,v 1.13 2002-08-17 07:55:51 adam Exp $ -->
  <chapter id="server"><title>Generic server</title>
   <sect1><title>Introduction</title>
 
@@ -217,14 +217,14 @@ statserv_options_block *statserv_getcontrol(void);
 
      <varlistentry><term>
       <literal>enum oid_proto default_proto;</literal></term>
-      <listitem><para>Either <literal>PROTO_SR</literal> or
-       <literal>PROTO_Z3950</literal>.
+      <listitem><para>Either <literal>PROTO_Z3950</literal> or
+       <literal>PROTO_SR</literal>.
        Default is <literal>PROTO_Z39_50</literal>.
        </para></listitem></varlistentry>
      
      <varlistentry><term>
        <literal>int idle_timeout;</literal></term>
-      <listitem><para>Maximum session idletime, in minutes. Zero indicates
+      <listitem><para>Maximum session idle-time, in minutes. Zero indicates
        no (infinite) timeout. Default is 120 minutes.
        </para></listitem></varlistentry>
      
@@ -342,6 +342,7 @@ typedef struct bend_initrequest
     Z_ReferenceId *referenceId;/* reference ID */
     char *peer_name;           /* dns host of peer (client) */
 
+    char *implementation_id;
     char *implementation_name;
     char *implementation_version;
     int (*bend_sort) (void *handle, bend_sort_rr *rr);
@@ -394,8 +395,9 @@ typedef struct bend_initresult
 
     <para>
      The members <literal>peer_name</literal>,
+     <literal>implementation_id</literal>,
      <literal>implementation_name</literal> and
-     <literal>implementation_version</literal> holds DNS of client, name
+     <literal>implementation_version</literal> holds DNS of client, ID of implementor, name
      of client (Z39.50) implementation - and version.
     </para>
 
@@ -649,7 +651,7 @@ typedef enum {
 } bend_scan_status;
 
 typedef struct bend_scan_rr {
-    int num_bases;      /* number of elements in databaselist */
+    int num_bases;      /* number of elements in database list */
     char **basenames;   /* databases to search */
     oid_value attributeset;
     Z_ReferenceId *referenceId; /* reference ID */
@@ -678,7 +680,7 @@ typedef struct bend_scan_rr {
    </para>
 
    <synopsis>
-    <replaceable>appname</replaceable> &lsqb;-szSiTu -a <replaceable>apdufile</replaceable> -l <replaceable>logfile</replaceable> -v <replaceable>loglevel</replaceable> -c <replaceable>config</replaceable>&rsqb;
+    <replaceable>appname</replaceable> &lsqb;-szSiT1 -u <replaceable>uid</replaceable> -a <replaceable>apdufile</replaceable> -l <replaceable>logfile</replaceable> -v <replaceable>loglevel</replaceable> -c <replaceable>config</replaceable>&rsqb;
     &lsqb;listener ...&rsqb;
    </synopsis>
 
@@ -687,14 +689,15 @@ typedef struct bend_scan_rr {
 
     <variablelist>
 
-     <varlistentry><term>-a <replaceable>file</replaceable></term>
+     <varlistentry><term><literal>-a </literal>
+       <replaceable>apdufile</replaceable></term>
       <listitem><para>
        Specify a file for dumping PDUs (for diagnostic purposes).
        The special name &quot;-&quot; sends output to
        <literal>stderr</literal>.
        </para></listitem></varlistentry>
 
-     <varlistentry><term>-S</term>
+     <varlistentry><term><literal>-S</literal></term>
       <listitem><para>
        Don't fork or make threads on connection requests. This is good for
        debugging, but not recommended for real operation: Although the
@@ -703,19 +706,25 @@ typedef struct bend_scan_rr {
        current users.
        </para></listitem></varlistentry>
 
-     <varlistentry><term>-T</term>
+     <varlistentry><term><literal>-1</literal></term>
+      <listitem><para>
+        Like <literal>-S</literal> but after one session the server
+        exits. This mode is for debugging <emphasis>only</emphasis>.
+       </para></listitem></varlistentry>
+     
+     <varlistentry><term><literal>-T</literal></term>
       <listitem><para>
        Operate the server in threaded mode. The server creates a thread
        for each connection rather than a fork a process. Only available
        on UNIX systems that offers POSIX threads.
        </para></listitem></varlistentry>
 
-     <varlistentry><term>-s</term>
+     <varlistentry><term><literal>-s</literal></term>
       <listitem><para>
        Use the SR protocol (obsolete).
        </para></listitem></varlistentry>
 
-     <varlistentry><term>-z</term>
+     <varlistentry><term><literal>-z</literal></term>
       <listitem><para>
        Use the Z39.50 protocol (default). These two options complement
        each other. You can use both multiple times on the same command
@@ -724,11 +733,13 @@ typedef struct bend_scan_rr {
        concurrently, on different local ports.
        </para></listitem></varlistentry>
 
-     <varlistentry><term>-l <replaceable>file</replaceable></term>
+     <varlistentry><term><literal>-l </literal>
+       <replaceable>file</replaceable></term>
       <listitem><para>The logfile.
        </para></listitem></varlistentry>
 
-     <varlistentry><term>-c <replaceable>config</replaceable></term>
+     <varlistentry><term><literal>-c </literal>
+       <replaceable>config</replaceable></term>
       <listitem><para>A user option that serves as a specifier for some
        sort of configuration, e.g. a filename.
        The argument to this option is transferred to member
@@ -736,13 +747,15 @@ typedef struct bend_scan_rr {
        <literal>statserv_options_block</literal>.
        </para></listitem></varlistentry>
 
-     <varlistentry><term>-v <replaceable>level</replaceable></term>
+     <varlistentry><term><literal>-v </literal>
+       <replaceable>level</replaceable></term>
       <listitem><para>
        The log level. Use a comma-separated list of members of the set
-       {fatal,debug,warn,log,all,none}.
+       {fatal,debug,warn,log,malloc,all,none}.
        </para></listitem></varlistentry>
 
-     <varlistentry><term>-u <replaceable>userid</replaceable></term>
+     <varlistentry><term><literal>-u </literal>
+       <replaceable>uid</replaceable></term>
       <listitem><para>
        Set user ID. Sets the real UID of the server process to that of the
        given user. It's useful if you aren't comfortable with having the
@@ -750,37 +763,58 @@ typedef struct bend_scan_rr {
        privileged port.
        </para></listitem></varlistentry>
 
-     <varlistentry><term>-w <replaceable>dir</replaceable></term>
+     <varlistentry><term><literal>-w </literal>
+       <replaceable>dir</replaceable></term>
       <listitem><para>
-       Working directory.
+       The server changes to this directory during before listening 
+        on incoming connections. This option is useful
+        when the server is operating from the <application>inetd</application>
+         daemon (see <literal>-i</literal>).
        </para></listitem></varlistentry>
 
-     <varlistentry><term>-i</term>
+     <varlistentry><term><literal>-i</literal></term>
       <listitem><para>
-       Use this when running from the <application>inetd</application> server.
+       Use this to make the the server run from the
+        <application>inetd</application> server (UNIX only).
        </para></listitem></varlistentry>
-
-     <varlistentry><term>-t <replaceable>minutes</replaceable></term>
+     
+     <varlistentry><term><literal>-install</literal></term>
+      <listitem><para>
+       Use this to install the server as an NT service
+        (Windows 2000/NT only). 
+        Control the server by going to the Services in the Control Panel.
+       </para></listitem></varlistentry>
+     
+     <varlistentry><term><literal>-remove</literal></term>
+      <listitem><para>
+       Use this to remove the server from the NT services
+        (Windows 2000/NT only). 
+       </para></listitem></varlistentry>
+     
+     <varlistentry><term><literal>-t </literal>
+       <replaceable>minutes</replaceable></term>
       <listitem><para>
        Idle session timeout, in minutes.
        </para></listitem></varlistentry>
-
-     <varlistentry><term>-k <replaceable>size</replaceable></term>
+     
+     <varlistentry><term><literal>-k </literal>
+       <replaceable>size</replaceable></term>
       <listitem><para>
        Maximum record size/message size, in kilobytes.
        </para></listitem></varlistentry>
-
+     
     </variablelist>
    </para>
-
+   
    <para>
     A listener specification consists of a transport mode followed by a
     colon (:) followed by a listener address. The transport mode is
-    either <literal>osi</literal> or <literal>tcp</literal>.
+    either <literal>tcp</literal>, <literal>unix:</literal> or
+    <literal>ssl</literal>.
    </para>
-
+   
    <para>
-    For TCP, an address has the form
+    For TCP and SSL, an address has the form
    </para>
 
    <synopsis>
@@ -792,18 +826,9 @@ typedef struct bend_scan_rr {
    </para>
 
    <para>
-    For osi, the address form is
-   </para>
-
-   <synopsis>
-    &lsqb;t-selector /&rsqb; hostname | IP-number &lsqb;: portnumber&rsqb;
-   </synopsis>
-
-   <para>
-    The transport selector is given as a string of hex digits (with an even
-    number of digits). The default port number is 102 (RFC1006 port).
+    For UNIX local socket the address is the name local file.
    </para>
-
+   
    <para>
     Examples
    </para>
@@ -811,27 +836,15 @@ typedef struct bend_scan_rr {
    <screen>
     tcp:dranet.dra.com
 
-    osi:0402/dbserver.osiworld.com:3000
-   </screen>
-
-   <para>
-    In both cases, the special hostname &quot;@&quot; is mapped to
-    the address INADDR_ANY, which causes the server to listen on any local
-    interface. To start the server listening on the registered ports for
-    Z39.50 and SR over OSI/RFC1006, and to drop root privileges once the
-    ports are bound, execute the server like this (from a root shell):
-   </para>
+    ssl:ssl.enterprise.com:3000
 
-   <screen>
-    my-server -u daemon tcp:@ -s osi:@
+    unix:/tmp/yaz
    </screen>
 
    <para>
-    You can replace <literal>daemon</literal> with another user, eg. your
-    own account, or a dedicated IR server account.
-    <literal>my-server</literal> should be the name of your
-    server application. You can test the procedure with the
-    <application>yaz-ztest</application> application.
+    For TCP/IP and SSL, the special hostname &quot;@&quot; is mapped to
+    the address <literal>INADDR_ANY</literal>, which causes the
+    server to listen on any local interface. 
    </para>
 
   </sect1>
@@ -847,7 +860,7 @@ typedef struct bend_scan_rr {
  sgml-indent-step:1
  sgml-indent-data:t
  sgml-parent-document: "yaz.xml"
- sgml-local-catalogs: "../../docbook/docbook.cat"
+ sgml-local-catalogs: nil
  sgml-namecase-general:t
  End:
  -->