Added hostname lookup for server.
authorSebastian Hammer <quinn@indexdata.com>
Mon, 30 Oct 1995 12:41:06 +0000 (12:41 +0000)
committerSebastian Hammer <quinn@indexdata.com>
Mon, 30 Oct 1995 12:41:06 +0000 (12:41 +0000)
CHANGELOG
client/client.c
comstack/tcpip.c
comstack/xmosi.c
include/comstack.h
server/statserv.c

index 442c53e..232d1cc 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -15,6 +15,8 @@ Added Diagnostic Format.
 Added simple Close handling to frontend server (no hooks for resource
 reporting yet), and demonstration client.
 
 Added simple Close handling to frontend server (no hooks for resource
 reporting yet), and demonstration client.
 
+Added cs_addrstr() command to COMSTACK to retrieve peer hostname/address.
+
 --- 1.0b3 1995/08/24
 
 Fixed bug in the frontend-server. The numberOfRecordsReturned field was
 --- 1.0b3 1995/08/24
 
 Fixed bug in the frontend-server. The numberOfRecordsReturned field was
index f1f3c58..b92f15e 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: client.c,v $
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: client.c,v $
- * Revision 1.23  1995-10-18 16:12:30  quinn
+ * Revision 1.24  1995-10-30 12:41:13  quinn
+ * Added hostname lookup for server.
+ *
+ * Revision 1.23  1995/10/18  16:12:30  quinn
  * Better diagnostics.
  *
  * Revision 1.22  1995/10/11  14:49:12  quinn
  * Better diagnostics.
  *
  * Revision 1.22  1995/10/11  14:49:12  quinn
@@ -668,13 +671,13 @@ void process_close(Z_Close *req)
     {
         "finished",
         "shutdown",
     {
         "finished",
         "shutdown",
-        "systemProblem",
-        "costLimit",
+        "system problem",
+        "cost limit reached",
         "resources",
         "resources",
-        "securityViolation",
+        "security violation",
         "protocolError",
         "protocolError",
-        "lackOfActivity",
-        "peerAbort",
+        "lack of activity",
+        "peer abort",
         "unspecified"
     };
 
         "unspecified"
     };
 
index 3fdb3e2..4e2ab4f 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: tcpip.c,v $
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: tcpip.c,v $
- * Revision 1.6  1995-09-29 17:12:00  quinn
+ * Revision 1.7  1995-10-30 12:41:16  quinn
+ * Added hostname lookup for server.
+ *
+ * Revision 1.6  1995/09/29  17:12:00  quinn
  * Smallish
  *
  * Revision 1.5  1995/09/29  17:01:48  quinn
  * Smallish
  *
  * Revision 1.5  1995/09/29  17:01:48  quinn
@@ -111,6 +114,7 @@ int tcpip_rcvconnect(COMSTACK h);
 int tcpip_bind(COMSTACK h, void *address, int mode);
 int tcpip_listen(COMSTACK h, char *addrp, int *addrlen);
 COMSTACK tcpip_accept(COMSTACK h);
 int tcpip_bind(COMSTACK h, void *address, int mode);
 int tcpip_listen(COMSTACK h, char *addrp, int *addrlen);
 COMSTACK tcpip_accept(COMSTACK h);
+char *tcpip_addrstr(COMSTACK h);
 
 int completeBER(unsigned char *buf, int len);
 
 
 int completeBER(unsigned char *buf, int len);
 
@@ -187,6 +191,7 @@ COMSTACK tcpip_type(int blocking, int protocol)
     p->f_bind = tcpip_bind;
     p->f_listen = tcpip_listen;
     p->f_accept = tcpip_accept;
     p->f_bind = tcpip_bind;
     p->f_listen = tcpip_listen;
     p->f_accept = tcpip_accept;
+    p->f_addrstr = tcpip_addrstr;
 
     p->state = CS_UNBND;
     p->event = CS_NONE;
 
     p->state = CS_UNBND;
     p->event = CS_NONE;
@@ -503,3 +508,26 @@ int tcpip_close(COMSTACK h)
     free(h);
     return 0;
 }
     free(h);
     return 0;
 }
+
+char *tcpip_addrstr(COMSTACK h)
+{
+    struct sockaddr_in addr;
+    static char buf[64];
+    char *r;
+    int len;
+    struct hostent *host;
+
+    len = sizeof(addr);
+    if (getpeername(h->iofile, (struct sockaddr*) &addr, &len) < 0)
+    {
+       h->cerrno = CSYSERR;
+       return 0;
+    }
+    if ((host = gethostbyaddr((char*)&addr.sin_addr, sizeof(addr.sin_addr),
+       AF_INET)))
+       r = (char*) host->h_name;
+    else
+       r = inet_ntoa(addr.sin_addr);
+    sprintf(buf, "tcp:%s", r);
+    return buf;
+}
index bed1dd1..3f6a9c2 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: xmosi.c,v $
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: xmosi.c,v $
- * Revision 1.6  1995-09-29 17:12:00  quinn
+ * Revision 1.7  1995-10-30 12:41:17  quinn
+ * Added hostname lookup for server.
+ *
+ * Revision 1.6  1995/09/29  17:12:00  quinn
  * Smallish
  *
  * Revision 1.5  1995/09/28  10:24:32  quinn
  * Smallish
  *
  * Revision 1.5  1995/09/28  10:24:32  quinn
@@ -103,6 +106,7 @@ int mosi_rcvconnect(COMSTACK h);
 int mosi_bind(COMSTACK h, void *address, int mode);
 int mosi_listen(COMSTACK h, char *addrp, int *addrlen);
 COMSTACK mosi_accept(COMSTACK h);
 int mosi_bind(COMSTACK h, void *address, int mode);
 int mosi_listen(COMSTACK h, char *addrp, int *addrlen);
 COMSTACK mosi_accept(COMSTACK h);
+char *mosi_addrstr(COMSTACK h);
 
 typedef struct mosi_state
 {
 
 typedef struct mosi_state
 {
@@ -171,6 +175,7 @@ COMSTACK mosi_type(int blocking, int protocol)
     r->f_bind = mosi_bind;
     r->f_listen = mosi_listen;
     r->f_accept = mosi_accept;
     r->f_bind = mosi_bind;
     r->f_listen = mosi_listen;
     r->f_accept = mosi_accept;
+    r->f_addrstr = mosi_addrstr;
 
     if (!blocking)
        flags |= O_NONBLOCK;
 
     if (!blocking)
        flags |= O_NONBLOCK;
@@ -470,3 +475,8 @@ int mosi_close(COMSTACK h)
     free(h);
     return 0;
 }    
     free(h);
     return 0;
 }    
+
+char *mosi_addrstr(COMSTACK h)
+{
+    return "osi:[UNIMPLEMENTED";
+}
index e14b8ea..eabbdf1 100644 (file)
  * OF THIS SOFTWARE.
  *
  * $Log: comstack.h,v $
  * OF THIS SOFTWARE.
  *
  * $Log: comstack.h,v $
- * Revision 1.11  1995-09-29 17:12:01  quinn
+ * Revision 1.12  1995-10-30 12:41:27  quinn
+ * Added hostname lookup for server.
+ *
+ * Revision 1.11  1995/09/29  17:12:01  quinn
  * Smallish
  *
  * Revision 1.10  1995/09/29  17:01:48  quinn
  * Smallish
  *
  * Revision 1.10  1995/09/29  17:01:48  quinn
@@ -145,6 +148,7 @@ struct comstack
     int (*f_listen)(COMSTACK handle, char *addrp, int *addrlen);
     COMSTACK (*f_accept)(COMSTACK handle);
     int (*f_close)(COMSTACK handle);
     int (*f_listen)(COMSTACK handle, char *addrp, int *addrlen);
     COMSTACK (*f_accept)(COMSTACK handle);
     int (*f_close)(COMSTACK handle);
+    char *(*f_addrstr)(COMSTACK handle);
 };
 
 #define cs_put(handle, buf, size) ((*(handle)->f_put)(handle, buf, size))
 };
 
 #define cs_put(handle, buf, size) ((*(handle)->f_put)(handle, buf, size))
@@ -163,6 +167,7 @@ struct comstack
 #define cs_getstate(handle) ((handle)->getstate)
 #define cs_errno(handle) ((handle)->cerrno)
 #define cs_getproto(handle) ((handle)->protocol)
 #define cs_getstate(handle) ((handle)->getstate)
 #define cs_errno(handle) ((handle)->cerrno)
 #define cs_getproto(handle) ((handle)->protocol)
+#define cs_addrstr(handle) ((*(handle)->f_addrstr)(handle))
 
 const char *cs_strerror(COMSTACK h);
 const char *cs_errmsg(int n);
 
 const char *cs_strerror(COMSTACK h);
 const char *cs_errmsg(int n);
index a692eb2..fe72e45 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: statserv.c,v $
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: statserv.c,v $
- * Revision 1.28  1995-09-29 17:12:30  quinn
+ * Revision 1.29  1995-10-30 12:41:29  quinn
+ * Added hostname lookup for server.
+ *
+ * Revision 1.28  1995/09/29  17:12:30  quinn
  * Smallish
  *
  * Revision 1.27  1995/09/27  15:03:02  quinn
  * Smallish
  *
  * Revision 1.27  1995/09/27  15:03:02  quinn
@@ -131,14 +134,12 @@ static statserv_options_block control_block = {
     "",                         /* diagnostic output to stderr */
     "tcp:@:9999",               /* default listener port */
     PROTO_Z3950,                /* default application protocol */
     "",                         /* diagnostic output to stderr */
     "tcp:@:9999",               /* default listener port */
     PROTO_Z3950,                /* default application protocol */
-    2*60,                       /* idle timeout (minutes) */
+    60,                         /* idle timeout (minutes) */
     1024*1024,                  /* maximum PDU size (approx.) to allow */
     "default-config",           /* configuration name to pass to backend */
     ""                          /* set user id */
 };
 
     1024*1024,                  /* maximum PDU size (approx.) to allow */
     "default-config",           /* configuration name to pass to backend */
     ""                          /* set user id */
 };
 
-#define DEFAULT_LISTENER "tcp:localhost:9999"
-
 /*
  * handle incoming connect requests.
  * The dynamic mode is a bit tricky mostly because we want to avoid
 /*
  * handle incoming connect requests.
  * The dynamic mode is a bit tricky mostly because we want to avoid
@@ -216,6 +217,7 @@ static void listener(IOCHAN h, int event)
     {
        COMSTACK new_line;
        IOCHAN new_chan;
     {
        COMSTACK new_line;
        IOCHAN new_chan;
+       char *a;
 
        if (!(new_line = cs_accept(line)))
        {
 
        if (!(new_line = cs_accept(line)))
        {
@@ -254,7 +256,8 @@ static void listener(IOCHAN h, int event)
        }
        iochan_setdata(new_chan, newas);
        iochan_settimeout(new_chan, control_block.idle_timeout * 60);
        }
        iochan_setdata(new_chan, newas);
        iochan_settimeout(new_chan, control_block.idle_timeout * 60);
-       logf(LOG_LOG, "accepted connection");
+       a = cs_addrstr(new_line);
+       logf(LOG_LOG, "Accepted connection from %s", a ? a : "[Unknown]");
     }
     else
     {
     }
     else
     {