Use proper tags for references to man pages
[yaz-moved-to-github.git] / doc / frontend.xml
index 70329d0..99f4909 100644 (file)
@@ -1,7 +1,7 @@
-<!-- $Id: frontend.xml,v 1.10 2001-11-27 22:12:24 adam Exp $ -->
+<!-- $Id: frontend.xml,v 1.15 2002-09-17 20:17:44 adam Exp $ -->
  <chapter id="server"><title>Generic server</title>
   <sect1><title>Introduction</title>
-
+   
    <para>
     If you aren't into documentation, a good way to learn how the
     back end interface works is to look at the <filename>backend.h</filename>
@@ -52,7 +52,8 @@
     The backend API consists of a small number of function handlers and
     structure definitions. You are required to provide the
     <function>main()</function> routine for the server (which can be
-    quite simple), as well as a set of handlers to match each of the prototypes.
+    quite simple), as well as a set of handlers to match each of the
+    prototypes.
     The interface functions that you write can use any mechanism you like
     to communicate with your database system: You might link the whole
     thing together with your database application and access it by
@@ -224,7 +225,7 @@ statserv_options_block *statserv_getcontrol(void);
      
      <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 +343,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 +396,10 @@ 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 +653,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 */
@@ -676,129 +680,37 @@ typedef struct bend_scan_rr {
     The finished application has the following
     invocation syntax (by way of <function>statserv_main()</function>):
    </para>
-
-   <synopsis>
-    <replaceable>appname</replaceable> &lsqb;-szSiTu -a <replaceable>apdufile</replaceable> -l <replaceable>logfile</replaceable> -v <replaceable>loglevel</replaceable> -c <replaceable>config</replaceable>&rsqb;
-    &lsqb;listener ...&rsqb;
-   </synopsis>
-
+   
+   <cmdsynopsis>
+    <command>appname</command>
+    <arg choice="opt"><option>-a <replaceable>file</replaceable></option></arg>
+    <arg choice="opt"><option>-v <replaceable>level</replaceable></option></arg>
+    <arg choice="opt"><option>-l <replaceable>file</replaceable></option></arg>
+    <arg choice="opt"><option>-u <replaceable>uid</replaceable></option></arg>
+    <arg choice="opt"><option>-c <replaceable>config</replaceable></option></arg>
+    <arg choice="opt"><option>-t <replaceable>minutes</replaceable></option></arg>
+    <sbr/>
+    <arg choice="opt"><option>-k <replaceable>kilobytes</replaceable></option></arg>
+    <arg choice="opt"><option>-d <replaceable>daemon</replaceable></option></arg>
+    <arg choice="opt"><option>-w <replaceable>dir</replaceable></option></arg>
+    <arg choice="opt"><option>-ziST1</option></arg>
+    <arg choice="opt" rep="repeat">listener-spec</arg>
+   </cmdsynopsis>
+   
    <para>
-    The options are
-
-    <variablelist>
+    The options are:
 
-     <varlistentry><term><literal>-a </literal>
-       <replaceable>file</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><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
-       server is asynchronous and non-blocking, it can be nice to keep
-       a software malfunction (okay then, a crash) from affecting all
-       current users.
-       </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>
+    &ztest-options;
 
-     <varlistentry><term><literal>-s</literal></term>
-      <listitem><para>
-       Use the SR protocol (obsolete).
-       </para></listitem></varlistentry>
-
-     <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
-       line, between listener-specifications (see below). This way, you
-       can set up the server to listen for connections in both protocols
-       concurrently, on different local ports.
-       </para></listitem></varlistentry>
-
-     <varlistentry><term><literal>-l </literal>
-       <replaceable>file</replaceable></term>
-      <listitem><para>The logfile.
-       </para></listitem></varlistentry>
-
-     <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
-       <literal>configname</literal>of the
-       <literal>statserv_options_block</literal>.
-       </para></listitem></varlistentry>
-
-     <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}.
-       </para></listitem></varlistentry>
-
-     <varlistentry><term><literal>-u </literal>
-       <replaceable>userid</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
-       server run as root, but you need to start it as such to bind a
-       privileged port.
-       </para></listitem></varlistentry>
-
-     <varlistentry><term><literal>-w </literal>
-       <replaceable>dir</replaceable></term>
-      <listitem><para>
-       Working directory.
-       </para></listitem></varlistentry>
-
-     <varlistentry><term><literal>-i</literal></term>
-      <listitem><para>
-       Use this to make the the server run from the
-        <application>inetd</application> server (UNIX only).
-       </para></listitem></varlistentry>
-     
-     <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><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>tcp</literal> or <literal>ssl</literal>.
+    either <literal>tcp</literal>, <literal>unix:</literal> or
+    <literal>ssl</literal>.
    </para>
-
+   
    <para>
     For TCP and SSL, an address has the form
    </para>
@@ -812,24 +724,29 @@ typedef struct bend_scan_rr {
    </para>
 
    <para>
-    Examples
+    For UNIX, the address is the filename of socket.
    </para>
 
-   <screen>
-    tcp:dranet.dra.com
-
-    ssl:ssl.enterprise.com:3000
-   </screen>
-
    <para>
-    In both cases, the special hostname &quot;@&quot; is mapped to
+    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>
+   
+   <para>
+    Examples:
+   <screen>
+    tcp:@:210
+
+    ssl:@:3000
+
+    unix:/tmp/yaz
+   </screen>
+   </para>
 
   </sect1>
  </chapter>
-
  <!-- Keep this comment at the end of the file
  Local variables:
  mode: sgml