Fixed bug in elementsetname-handling in piggybacked presents.
[yaz-moved-to-github.git] / server / seshigh.c
index 2722d43..2317a56 100644 (file)
@@ -4,7 +4,13 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: seshigh.c,v $
- * Revision 1.49  1995-10-16 13:51:53  quinn
+ * Revision 1.51  1995-11-01 11:56:37  quinn
+ * Fixed bug in elementsetname-handling in piggybacked presents.
+ *
+ * Revision 1.50  1995/10/25  16:58:32  quinn
+ * Simple.
+ *
+ * Revision 1.49  1995/10/16  13:51:53  quinn
  * Changes to provide Especs to the backend.
  *
  * Revision 1.48  1995/10/06  08:51:20  quinn
@@ -399,8 +405,9 @@ void ir_session(IOCHAN h, int event)
            odr_setbuf(assoc->decode, assoc->input_buffer, res, 0);
            if (!z_APDU(assoc->decode, &req->request, 0))
            {
-               logf(LOG_LOG, "ODR error on incoming PDU: %s",
-                   odr_errlist[odr_geterror(assoc->decode)]);
+               logf(LOG_LOG, "ODR error on incoming PDU: %s [near byte %d] ",
+                   odr_errlist[odr_geterror(assoc->decode)],
+                   odr_offset(assoc->decode));
                logf(LOG_LOG, "PDU dump:");
                odr_dumpBER(log_file(), assoc->input_buffer, res);
                do_close(assoc, Z_Close_protocolError, "Malformed package");
@@ -1040,7 +1047,7 @@ static Z_APDU *response_searchRequest(association *assoc, request *reqb,
     else
     {
        static int toget;
-       Z_RecordComposition comp;
+       Z_RecordComposition comp, *compp = 0;
        static int presst = 0;
 
        resp.records = 0;
@@ -1052,6 +1059,7 @@ static Z_APDU *response_searchRequest(association *assoc, request *reqb,
        {
            toget = bsrt->hits;
            comp.u.simple = req->smallSetElementSetNames;
+           compp = ∁
        }
        else if (bsrt->hits < *req->largeSetLowerBound)
        {
@@ -1059,6 +1067,7 @@ static Z_APDU *response_searchRequest(association *assoc, request *reqb,
            if (toget > bsrt->hits)
                toget = bsrt->hits;
            comp.u.simple = req->mediumSetElementSetNames;
+           compp = &comp;
        }
        else
            toget = 0;
@@ -1074,7 +1083,7 @@ static Z_APDU *response_searchRequest(association *assoc, request *reqb,
            else
                form = prefformat->value;
            resp.records = pack_records(assoc, req->resultSetName, 1,
-               &toget, &comp, &next, &presst, form);
+               &toget, compp, &next, &presst, form);
            if (!resp.records)
                return 0;
            resp.numberOfRecordsReturned = &toget;