Fixed problem where proxy could cash bad result sets.
authorAdam Dickmeiss <adam@indexdata.dk>
Tue, 10 Apr 2001 10:48:08 +0000 (10:48 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Tue, 10 Apr 2001 10:48:08 +0000 (10:48 +0000)
src/yaz-my-client.cpp
src/yaz-proxy-main.cpp
src/yaz-proxy.cpp

index 48e0aad..ec970ad 100644 (file)
@@ -3,7 +3,10 @@
  * See the file LICENSE for details.
  * 
  * $Log: yaz-my-client.cpp,v $
- * Revision 1.4  2001-04-05 15:12:24  adam
+ * Revision 1.5  2001-04-10 10:48:08  adam
+ * Fixed problem where proxy could cash bad result sets.
+ *
+ * Revision 1.4  2001/04/05 15:12:24  adam
  * WIN32 updates.
  *
  * Revision 1.3  2001/04/05 13:09:44  adam
@@ -496,10 +499,12 @@ void MyClient::recv_searchResponse(Z_SearchResponse *searchResponse)
     if (!*searchResponse->searchStatus)
     {
        printf ("Fail\n");
-       return;
     }
-    printf ("Ok\n");
-    printf ("Hits: %d\n", *searchResponse->resultCount);
+    else
+    {
+       printf ("Ok\n");
+       printf ("Hits: %d\n", *searchResponse->resultCount);
+    }
     recv_records (searchResponse->records);
 }
 
index b4be150..f6abc77 100644 (file)
@@ -1,9 +1,12 @@
 /*
- * Copyright (c) 1998-2000, Index Data.
+ * Copyright (c) 1998-2001, Index Data.
  * See the file LICENSE for details.
  * 
  * $Log: yaz-proxy-main.cpp,v $
- * Revision 1.12  2000-10-11 11:58:16  adam
+ * Revision 1.13  2001-04-10 10:48:08  adam
+ * Fixed problem where proxy could cash bad result sets.
+ *
+ * Revision 1.12  2000/10/11 11:58:16  adam
  * Moved header files to include/yaz++. Switched to libtool and automake.
  * Configure script creates yaz++-config script.
  *
@@ -115,5 +118,6 @@ int main(int argc, char **argv)
     args(&proxy, argc, argv);
     while (mySocketManager.processEvent() > 0)
        ;
+    exit (0);
     return 0;
 }
index 988eb91..8609021 100644 (file)
@@ -3,7 +3,10 @@
  * See the file LICENSE for details.
  * 
  * $Log: yaz-proxy.cpp,v $
- * Revision 1.23  2001-03-26 14:43:49  adam
+ * Revision 1.24  2001-04-10 10:48:08  adam
+ * Fixed problem where proxy could cash bad result sets.
+ *
+ * Revision 1.23  2001/03/26 14:43:49  adam
  * New threaded PDU association.
  *
  * Revision 1.22  2000/11/20 11:27:33  adam
@@ -535,7 +538,17 @@ void Yaz_ProxyClient::recv_Z_PDU(Z_APDU *apdu)
     m_waiting = 0;
     logf (LOG_LOG, "Yaz_ProxyClient::recv_Z_PDU %s", get_hostname());
     if (apdu->which == Z_APDU_searchResponse)
+    {
        m_last_resultCount = *apdu->u.searchResponse->resultCount;
+       int status = *apdu->u.searchResponse->searchStatus;
+       if (! status || (
+               apdu->u.searchResponse->records &&
+               apdu->u.searchResponse->records->which != Z_Records_DBOSD))
+       {
+           delete m_last_query;
+           m_last_query = 0;
+       }
+    }
     if (apdu->which == Z_APDU_presentResponse && m_sr_transform)
     {
        m_sr_transform = 0;