Proper scan SRU encoding
[yaz-moved-to-github.git] / src / srwutil.c
index 91808b0..4eb9573 100644 (file)
@@ -296,7 +296,9 @@ int yaz_srw_decode(Z_HTTP_Request *hreq, Z_SRW_PDU **srw_pdu,
                 *srw_pdu = (Z_SRW_PDU*) (*soap_package)->u.generic->p;
                 yaz_srw_decodeauth(*srw_pdu, hreq, 0, 0, decode);
 
-                if ((*soap_package)->u.generic->no == 3) /* SRU 2 ! */
+                /* last entry in handlers - SRU 2.0 - is turned into
+                   offset 0.. due to other pieces relying on it */
+                if ((*soap_package)->u.generic->no == 3)
                     (*soap_package)->u.generic->no = 0;
                 if ((*srw_pdu)->which == Z_SRW_searchRetrieve_request &&
                     (*srw_pdu)->u.request->database == 0)
@@ -965,14 +967,14 @@ static int yaz_get_sru_parms(const Z_SRW_PDU *srw_pdu, ODR encode,
         break;
     case Z_SRW_scan_request:
         value[i++] = "scan";
-        queryType = srw_pdu->u.request->queryType;
+        queryType = srw_pdu->u.scan_request->queryType;
         if (version2)
         {
             if (queryType && strcmp(queryType, "cql"))
                 yaz_add_name_value_str(encode, name, value, &i, "queryType",
                                        queryType);
-            yaz_add_name_value_str(encode, name, value, &i, "query",
-                                   srw_pdu->u.request->query);
+            yaz_add_name_value_str(encode, name, value, &i, "scanClause",
+                                   srw_pdu->u.scan_request->scanClause);
         }
         else
         {