Implemented ILL protocol. Minor updates ASN.1 compiler.
[yaz-moved-to-github.git] / server / seshigh.c
index 7425016..eb26f03 100644 (file)
@@ -4,8 +4,14 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: seshigh.c,v $
- * Revision 1.97  1999-11-29 14:36:28  adam
- * Implementation_name and implementation_version copied verbatim.
+ * Revision 1.100  1999-12-16 23:36:19  adam
+ * Implemented ILL protocol. Minor updates ASN.1 compiler.
+ *
+ * Revision 1.99  1999/11/30 13:47:12  adam
+ * Improved installation. Moved header files to include/yaz.
+ *
+ * Revision 1.98  1999/11/29 15:12:27  adam
+ * Changed the way implementationName - and version is set.
  *
  * Revision 1.96  1999/11/04 14:58:44  adam
  * Added status elements for backend delete result set handler.
  *
  */
 
-#include <yconfig.h>
 #include <stdlib.h>
 #include <stdio.h>
 #ifdef WIN32
 #endif
 #include <assert.h>
 
-#include <xmalloc.h>
-#include <comstack.h>
+#include <yaz/yconfig.h>
+#include <yaz/xmalloc.h>
+#include <yaz/comstack.h>
 #include "eventl.h"
 #include "session.h"
-#include <proto.h>
-#include <oid.h>
-#include <log.h>
-#include <logrpn.h>
-#include <statserv.h>
+#include <yaz/proto.h>
+#include <yaz/oid.h>
+#include <yaz/log.h>
+#include <yaz/logrpn.h>
+#include <yaz/statserv.h>
 
-#include <backend.h>
+#include <yaz/backend.h>
 
 static int process_request(association *assoc, request *req, char **msg);
 void backend_response(IOCHAN i, int event);
@@ -928,12 +934,28 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb)
     resp->preferredMessageSize = &assoc->preferredMessageSize;
     resp->maximumRecordSize = &assoc->maximumRecordSize;
 
-    resp->implementationName = "Index Data/YAZ Generic Frontend Server";
+    resp->implementationName = "GFS";
 
     if (binitreq.implementation_name)
-       resp->implementationName = binitreq.implementation_name;
+    {
+       char *nv = (char *)
+           odr_malloc (assoc->encode,
+                       strlen(binitreq.implementation_name) + 10 + 
+                              strlen(resp->implementationName));
+       sprintf (nv, "%s / %s",
+                resp->implementationName, binitreq.implementation_name);
+        resp->implementationName = nv;
+    }
     if (binitreq.implementation_version)
-        resp->implementationVersion = binitreq.implementation_version;
+    {
+       char *nv = (char *)
+           odr_malloc (assoc->encode,
+                       strlen(binitreq.implementation_version) + 10 + 
+                              strlen(resp->implementationVersion));
+       sprintf (nv, "YAZ %s / %s",
+                resp->implementationVersion, binitreq.implementation_version);
+        resp->implementationVersion = nv;
+    }
 
     if (binitres->errcode)
     {
@@ -1852,6 +1874,7 @@ static Z_APDU *process_ESRequest(association *assoc, request *reqb, int *fd)
 
     esrequest.esr = reqb->request->u.extendedServicesRequest;
     esrequest.stream = assoc->encode;
+    esrequest.decode = assoc->decode;
     esrequest.errcode = 0;
     esrequest.errstring = NULL;
     esrequest.request = reqb;