Added logging.
authorSebastian Hammer <quinn@indexdata.com>
Fri, 31 Mar 1995 09:18:55 +0000 (09:18 +0000)
committerSebastian Hammer <quinn@indexdata.com>
Fri, 31 Mar 1995 09:18:55 +0000 (09:18 +0000)
server/seshigh.c
server/statserv.c

index 02bdd79..436de77 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: seshigh.c,v $
- * Revision 1.15  1995-03-30 14:03:23  quinn
+ * Revision 1.16  1995-03-31 09:18:55  quinn
+ * Added logging.
+ *
+ * Revision 1.15  1995/03/30  14:03:23  quinn
  * Added RFC1006 as separate library
  *
  * Revision 1.14  1995/03/30  12:18:17  quinn
 #include <session.h>
 #include <proto.h>
 #include <oid.h>
+#include <iso2709.h>
+#include <log.h>
 
 #include <backend.h>
 
-#include <iso2709.h>
-
 #define ENCODE_BUFFER_SIZE 10000
 
 static int process_apdu(IOCHAN chan);
@@ -122,7 +125,7 @@ void ir_session(IOCHAN h, int event)
        switch (res)
        {
            case 0: case -1: /* connection closed by peer */
-               fprintf(stderr, "Closed connection\n");
+               logf(LOG_LOG, "Connection closed by client");
                cs_close(conn);
                destroy_association(assoc);
                iochan_destroy(h);
@@ -133,7 +136,6 @@ void ir_session(IOCHAN h, int event)
                assoc->input_apdu_len = res;
                if (process_apdu(h) < 0)
                {
-                   fprintf(stderr, "Operation failed\n");
                    cs_close(conn);
                    destroy_association(assoc);
                    iochan_destroy(h);
@@ -147,7 +149,7 @@ void ir_session(IOCHAN h, int event)
        switch (res = cs_put(conn, assoc->encode_buffer, assoc->encoded_len))
        {
            case -1:
-               fprintf(stderr, "Closed connection\n");
+               logf(LOG_LOG, "Connection closed by client");
                cs_close(conn);
                destroy_association(assoc);
                iochan_destroy(h);
@@ -160,7 +162,7 @@ void ir_session(IOCHAN h, int event)
     }
     else if (event == EVENT_EXCEPT)
     {
-       fprintf(stderr, "Exception on line\n");
+       logf(LOG_LOG, "Exception on line");
        cs_close(conn);
        destroy_association(assoc);
        iochan_destroy(h);
@@ -176,7 +178,8 @@ static int process_apdu(IOCHAN chan)
     odr_setbuf(assoc->decode, assoc->input_buffer, assoc->input_apdu_len);
     if (!z_APDU(assoc->decode, &apdu, 0))
     {
-       odr_perror(assoc->decode, "Incoming APDU");
+       logf(LOG_WARN, "ODR error: %s",
+           odr_errlist[odr_geterror(assoc->decode)]);
        return -1;
     }
     switch (apdu->which)
@@ -188,7 +191,7 @@ static int process_apdu(IOCHAN chan)
        case Z_APDU_presentRequest:
            res = process_presentRequest(chan, apdu->u.presentRequest); break;
        default:
-           fprintf(stderr, "Bad APDU\n");
+           logf(LOG_WARN, "Bad APDU");
            return -1;
     }
     odr_reset(assoc->decode); /* release incopming APDU */
@@ -206,18 +209,18 @@ static int process_initRequest(IOCHAN client, Z_InitRequest *req)
     bend_initresult *binitres;
     Odr_bitmask options, protocolVersion;
 
-    fprintf(stderr, "Got initRequest.\n");
+    logf(LOG_LOG, "Got initRequest");
     if (req->implementationId)
-       fprintf(stderr, "Id:        %s\n", req->implementationId);
+       logf(LOG_LOG, "Id:        %s", req->implementationId);
     if (req->implementationName)
-       fprintf(stderr, "Name:      %s\n", req->implementationName);
+       logf(LOG_LOG, "Name:      %s", req->implementationName);
     if (req->implementationVersion)
-       fprintf(stderr, "Version:   %s\n", req->implementationVersion);
+       logf(LOG_LOG, "Version:   %s", req->implementationVersion);
 
     binitreq.configname = "default-config";
     if (!(binitres = bend_init(&binitreq)) || binitres->errcode)
     {
-       fprintf(stderr, "Bad response from backend\n");
+       logf(LOG_WARN, "Bad response from backend");
        return -1;
     }
 
@@ -257,11 +260,12 @@ static int process_initRequest(IOCHAN client, Z_InitRequest *req)
     resp.result = &result;
     resp.implementationId = "YAZ";
     resp.implementationName = "Index Data/YAZ Generic Frontend Server";
-    resp.implementationVersion = "$Revision: 1.15 $";
+    resp.implementationVersion = "$Revision: 1.16 $";
     resp.userInformationField = 0;
     if (!z_APDU(assoc->encode, &apdup, 0))
     {
-       odr_perror(assoc->encode, "Encode initres");
+       logf(LOG_FATAL, "ODR error encoding initres: %s",
+           odr_errlist[odr_geterror(assoc->encode)]);
        return -1;
     }
     odr_getbuf(assoc->encode, &assoc->encoded_len);
@@ -281,7 +285,7 @@ static Z_Records *diagrec(oid_proto proto, int error, char *addinfo)
     bib1.class = CLASS_DIAGSET;
     bib1.value = VAL_BIB1;
 
-    fprintf(stderr, "Diagnostic: %d -- %s\n", error, addinfo ? addinfo :
+    logf(LOG_DEBUG, "Diagnostic: %d -- %s", error, addinfo ? addinfo :
        "NULL");
     err = error;
     rec.which = Z_Records_NSD;
@@ -304,7 +308,7 @@ static Z_NamePlusRecord *surrogatediagrec(oid_proto proto, char *dbname,
     bib1.class = CLASS_DIAGSET;
     bib1.value = VAL_BIB1;
 
-    fprintf(stderr, "SurrogateDiagnotic: %d -- %s\n", error, addinfo);
+    logf(LOG_DEBUG, "SurrogateDiagnotic: %d -- %s", error, addinfo);
     err = error;
     rec.databaseName = dbname;
     rec.which = Z_NamePlusRecord_surrogateDiagnostic;
@@ -342,8 +346,8 @@ static Z_Records *pack_records(association *a, char *setname, int start,
     if (!(oid = odr_oiddup(a->encode, oid_getoidbyent(&recform))))
        return 0;
 
-    fprintf(stderr, "Request to pack %d+%d\n", start, toget);
-    fprintf(stderr, "pms=%d, mrs=%d\n", a->preferredMessageSize,
+    logf(LOG_DEBUG, "Request to pack %d+%d", start, toget);
+    logf(LOG_DEBUG, "pms=%d, mrs=%d", a->preferredMessageSize,
        a->maximumRecordSize);
     for (recno = start; reclist.num_records < toget; recno++)
     {
@@ -371,25 +375,24 @@ static Z_Records *pack_records(association *a, char *setname, int start,
            *pres = Z_PRES_FAILURE;
            return diagrec(a->proto, fres->errcode, fres->errstring);
        }
-       fprintf(stderr, "  Got record, len=%d, total=%d\n",
+       logf(LOG_DEBUG, "  Got record, len=%d, total=%d",
            fres->len, total_length);
        if (fres->len + total_length > a->preferredMessageSize)
        {
-           fprintf(stderr, "  In drop-zone\n");
            /* record is small enough, really */
            if (fres->len <= a->preferredMessageSize)
            {
-               fprintf(stderr, "  Dropped last normal-sized record\n");
+               logf(LOG_DEBUG, "  Dropped last normal-sized record");
                *pres = Z_PRES_PARTIAL_2;
                break;
            }
            /* record can only be fetched by itself */
            if (fres->len < a->maximumRecordSize)
            {
-               fprintf(stderr, "  Record > prefmsgsz\n");
+               logf(LOG_DEBUG, "  Record > prefmsgsz");
                if (toget > 1)
                {
-                   fprintf(stderr, "  Dropped it\n");
+                   logf(LOG_DEBUG, "  Dropped it");
                    reclist.records[reclist.num_records] =
                         surrogatediagrec(a->proto, fres->basename, 16, 0);
                    reclist.num_records++;
@@ -399,7 +402,7 @@ static Z_Records *pack_records(association *a, char *setname, int start,
            }
            else /* too big entirely */
            {
-               fprintf(stderr, "Record > maxrcdsz\n");
+               logf(LOG_DEBUG, "Record > maxrcdsz");
                reclist.records[reclist.num_records] =
                    surrogatediagrec(a->proto, fres->basename, 17, 0);
                reclist.num_records++;
@@ -451,7 +454,7 @@ static int process_searchRequest(IOCHAN client, Z_SearchRequest *req)
     int next = 0;
     static int none = Z_RES_NONE;
 
-    fprintf(stderr, "Got SearchRequest.\n");
+    logf(LOG_LOG, "Got SearchRequest.");
     apdup = &apdu;
     apdu.which = Z_APDU_searchResponse;
     apdu.u.searchResponse = &resp;
@@ -546,7 +549,8 @@ static int process_searchRequest(IOCHAN client, Z_SearchRequest *req)
 
     if (!z_APDU(assoc->encode, &apdup, 0))
     {
-       odr_perror(assoc->encode, "Encode searchres");
+       logf(LOG_FATAL, "ODR error encoding searchres: %s",
+           odr_errlist[odr_geterror(assoc->encode)]);
        return -1;
     }
     odr_getbuf(assoc->encode, &assoc->encoded_len);
@@ -562,7 +566,7 @@ static int process_presentRequest(IOCHAN client, Z_PresentRequest *req)
     association *assoc = iochan_getdata(client);
     int presst, next, num;
 
-    fprintf(stderr, "Got PresentRequest.\n");
+    logf(LOG_LOG, "Got PresentRequest.");
     apdup = &apdu;
     apdu.which = Z_APDU_presentResponse;
     apdu.u.presentResponse = &resp;
@@ -579,7 +583,8 @@ static int process_presentRequest(IOCHAN client, Z_PresentRequest *req)
 
     if (!z_APDU(assoc->encode, &apdup, 0))
     {
-       odr_perror(assoc->encode, "Encode presentres");
+       logf(LOG_FATAL, "ODR error encoding initres: %s",
+           odr_errlist[odr_geterror(assoc->encode)]);
        return -1;
     }
     odr_getbuf(assoc->encode, &assoc->encoded_len);
index f5fb325..5f32259 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: statserv.c,v $
- * Revision 1.13  1995-03-30 16:08:39  quinn
+ * Revision 1.14  1995-03-31 09:18:58  quinn
+ * Added logging.
+ *
+ * Revision 1.13  1995/03/30  16:08:39  quinn
  * Little mods.
  *
  * Revision 1.12  1995/03/30  13:29:02  quinn
@@ -98,12 +101,12 @@ static void listener(IOCHAN h, int event)
 
            if (pipe(hand) < 0)
            {
-               perror("pipe");
+               logf(LOG_FATAL|LOG_ERRNO, "pipe");
                exit(1);
            }
            if ((res = fork()) < 0)
            {
-               perror("fork");
+               logf(LOG_FATAL|LOG_ERRNO, "fork");
                exit(1);
            }
            else if (res == 0) /* child */
@@ -122,20 +125,20 @@ static void listener(IOCHAN h, int event)
                    
                    if ((res = read(hand[0], dummy, 1)) < 0 && errno != EINTR)
                    {
-                       perror("handshake read");
+                       logf(LOG_FATAL|LOG_ERRNO, "handshake read");
                        exit(1);
                    }
                    else if (res >= 0)
                        break;
                }
-               fprintf(stderr, "P: Child has taken the call\n");
+               logf(LOG_DEBUG, "P: Child has taken the call");
                close(hand[0]);
                return;
            }
        }
        if ((res = cs_listen(line, 0, 0)) < 0)
        {
-           fprintf(stderr, "cs_listen failed.\n");
+           logf(LOG_FATAL, "cs_listen failed.");
            return;
        }
        else if (res == 1)
@@ -151,7 +154,7 @@ static void listener(IOCHAN h, int event)
 
        if (!(new_line = cs_accept(line)))
        {
-           fprintf(stderr, "Accept failed.\n");
+           logf(LOG_FATAL, "Accept failed.");
            iochan_setflags(h, EVENT_INPUT | EVENT_EXCEPT); /* reset listener */
            return;
        }
@@ -166,9 +169,8 @@ static void listener(IOCHAN h, int event)
                iochan_destroy(pp);
            }
            /* release dad */
-           fprintf(stderr, "Releasing parent\n");
+           logf(LOG_DEBUG, "Releasing parent");
            close(hand[1]);
-           fprintf(stderr, "New fd is %d\n", cs_fileno(new_line));
        }
        else
            iochan_setflags(h, EVENT_INPUT | EVENT_EXCEPT); /* reset listener */
@@ -176,19 +178,19 @@ static void listener(IOCHAN h, int event)
        if (!(new_chan = iochan_create(cs_fileno(new_line), ir_session,
            EVENT_INPUT)))
        {
-           fprintf(stderr, "Failed to create iochan\n");
+           logf(LOG_FATAL, "Failed to create iochan");
            exit(1);
        }
        if (!(newas = create_association(new_chan, new_line)))
        {
-           fprintf(stderr, "Failed to create new assoc.\n");
+           logf(LOG_FATAL, "Failed to create new assoc.");
            exit(1);
        }
        iochan_setdata(new_chan, newas);
     }
     else
     {
-       fprintf(stderr, "Bad event on listener.\n");
+       logf(LOG_FATAL, "Bad event on listener.");
        exit(1);
     }
 }
@@ -204,7 +206,7 @@ static void add_listener(char *where, int what)
     void *ap;
     IOCHAN lst;
 
-    fprintf(stderr, "Adding %s %s listener on %s\n",
+    logf(LOG_LOG, "Adding %s %s listener on %s",
         dynamic ? "dynamic" : "static",
        what == PROTO_SR ? "SR" : "Z3950", where);
     if (!where || sscanf(where, "%[^:]:%s", mode, addr) != 2)
@@ -246,13 +248,13 @@ static void add_listener(char *where, int what)
     if (cs_bind(l, ap, CS_SERVER) < 0)
     {
        fprintf(stderr, "Failed to bind.\n");
-       perror(where);
+       logf(LOG_FATAL|LOG_ERRNO, where);
        exit(1);
     }
     if (!(lst = iochan_create(cs_fileno(l), listener, EVENT_INPUT |
         EVENT_EXCEPT)))
     {
-       fprintf(stderr, "Failed to create IOCHAN-type\n");
+       logf(LOG_FATAL, "Failed to create IOCHAN-type\n");
        exit(1);
     }
     iochan_setdata(lst, l);
@@ -299,5 +301,6 @@ int statserv_main(int argc, char **argv)
        signal(SIGCHLD, catchchld);
     if (!listeners)
        add_listener(DEFAULT_LISTENER, protocol);
+    logf(LOG_LOG, "Entering event loop.");
     return event_loop();
 }