changed ccl_pr_tree to print as a qpn query instead of some infix notation
[yaz-moved-to-github.git] / server / statserv.c
index cecc6b1..7a02be7 100644 (file)
@@ -1,12 +1,12 @@
 /*
- * Copyright (c) 1995-2001, Index Data
+ * Copyright (c) 1995-2002, Index Data
  * See the file LICENSE for details.
  * Sebastian Hammer, Adam Dickmeiss
  *
- * NT server based on threads by
+ * NT threaded server code by
  *   Chas Woodfield, Fretwell Downing Informatics.
  *
- * $Id: statserv.c,v 1.78 2001-10-24 12:24:43 adam Exp $
+ * $Id: statserv.c,v 1.82 2002-05-17 12:48:29 adam Exp $
  */
 
 #include <stdio.h>
@@ -243,7 +243,7 @@ void statserv_closedown()
     }
 }
 
-void event_loop_thread (IOCHAN iochan)
+void __cdecl event_loop_thread (IOCHAN iochan)
 {
     event_loop (&iochan);
 }
@@ -601,7 +601,7 @@ static void inetd_connection(int what)
 /*
  * Set up a listening endpoint, and give it to the event-handler.
  */
-static void add_listener(char *where, int what)
+static int add_listener(char *where, int what)
 {
     COMSTACK l;
     void *ap;
@@ -622,26 +622,27 @@ static void add_listener(char *where, int what)
     if (!l)
     {
        yaz_log(LOG_FATAL|LOG_ERRNO, "Failed to listen on %s", where);
-       return;
+       return -1;
     }
     if (cs_bind(l, ap, CS_SERVER) < 0)
     {
        yaz_log(LOG_FATAL|LOG_ERRNO, "Failed to bind to %s", where);
        cs_close (l);
-       return;
+       return -1;
     }
     if (!(lst = iochan_create(cs_fileno(l), listener, EVENT_INPUT |
         EVENT_EXCEPT)))
     {
        yaz_log(LOG_FATAL|LOG_ERRNO, "Failed to create IOCHAN-type");
        cs_close (l);
-       return;
+       return -1;
     }
     iochan_setdata(lst, l);
 
     /* Ensure our listener chain is setup properly */
     lst->next = pListener;
     pListener = lst;
+    return 0; /* OK */
 }
 
 #ifndef WIN32
@@ -751,7 +752,8 @@ int check_options(int argc, char **argv)
        switch (ret)
        {
        case 0:
-           add_listener(arg, control_block.default_proto);
+           if (add_listener(arg, control_block.default_proto))
+                return 1;  /* failed to create listener */
            break;
        case '1':        
            control_block.one_shot = 1;
@@ -761,7 +763,8 @@ int check_options(int argc, char **argv)
            control_block.default_proto = PROTO_Z3950;
            break;
        case 's':
-           control_block.default_proto = PROTO_SR;
+            fprintf (stderr, "%s: SR protocol no longer supported\n", me);
+            exit (1);
            break;
        case 'S':
            control_block.dynamic = 0;
@@ -828,7 +831,7 @@ int check_options(int argc, char **argv)
            fprintf(stderr, "Usage: %s [ -a <pdufile> -v <loglevel>"
                    " -l <logfile> -u <user> -c <config> -t <minutes>"
                    " -k <kilobytes> -d <daemon>"
-                        " -zsiST -w <directory> <listender-addr>... ]\n", me);
+                        " -ziST -w <directory> <listender-addr>... ]\n", me);
            return 1;
         }
     }