Added facility to specify implementation version - and name
authorAdam Dickmeiss <adam@indexdata.dk>
Thu, 17 Jun 1999 10:54:44 +0000 (10:54 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Thu, 17 Jun 1999 10:54:44 +0000 (10:54 +0000)
for server.

include/backend.h
server/seshigh.c

index 7dbd211..6177c17 100644 (file)
  * OF THIS SOFTWARE.
  *
  * $Log: backend.h,v $
- * Revision 1.25  1999-06-01 14:29:12  adam
+ * Revision 1.26  1999-06-17 10:54:44  adam
+ * Added facility to specify implementation version - and name
+ * for server.
+ *
+ * Revision 1.25  1999/06/01 14:29:12  adam
  * Work on Extended Services.
  *
  * Revision 1.24  1999/03/31 11:18:24  adam
@@ -245,6 +249,8 @@ typedef struct bend_initrequest
     ODR stream;                /* encoding stream */
     Z_ReferenceId *referenceId;/* reference ID */
     
+    char *implementation_name;
+    char *implementation_version;
     int (*bend_sort) (void *handle, bend_sort_rr *rr);
     int (*bend_search) (void *handle, bend_search_rr *rr);
     int (*bend_present) (void *handle, bend_present_rr *rr);
index 9646fa7..33c7b06 100644 (file)
@@ -4,7 +4,11 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: seshigh.c,v $
- * Revision 1.91  1999-06-01 14:29:12  adam
+ * Revision 1.92  1999-06-17 10:54:45  adam
+ * Added facility to specify implementation version - and name
+ * for server.
+ *
+ * Revision 1.91  1999/06/01 14:29:12  adam
  * Work on Extended Services.
  *
  * Revision 1.90  1999/05/27 13:02:20  adam
@@ -799,6 +803,8 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb)
     binitreq.configname = "default-config";
     binitreq.auth = req->idAuthentication;
     binitreq.referenceId = req->referenceId;
+    binitreq.implementation_version = 0;
+    binitreq.implementation_name = 0;
     binitreq.bend_sort = NULL;
     binitreq.bend_search = NULL;
     binitreq.bend_present = NULL;
@@ -890,7 +896,30 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb)
        assoc->preferredMessageSize = assoc->maximumRecordSize;
     resp->preferredMessageSize = &assoc->preferredMessageSize;
     resp->maximumRecordSize = &assoc->maximumRecordSize;
+
     resp->implementationName = "Index Data/YAZ Generic Frontend Server";
+
+    if (binitreq.implementation_name)
+    {
+       char *nv = (char *)
+           odr_malloc (assoc->encode,
+                       strlen(binitreq.implementation_name) + 3 + 
+                              strlen(resp->implementationName));
+       sprintf (nv, "%s %s",
+                resp->implementationName, binitreq.implementation_name);
+        resp->implementationName = nv;
+    }
+    if (binitreq.implementation_version)
+    {
+       char *nv = (char *)
+           odr_malloc (assoc->encode,
+                       strlen(binitreq.implementation_version) + 3 + 
+                              strlen(resp->implementationVersion));
+       sprintf (nv, "%s %s",
+                resp->implementationVersion, binitreq.implementation_version);
+        resp->implementationVersion = nv;
+    }
+
     if (binitres->errcode)
     {
        logf(LOG_LOG, "Connection rejected by backend.");