Display better info for encoding/decoding failures
[yazpp-moved-to-github.git] / include / yaz++ / proxy.h
index 66a453d..87286ff 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (c) 1998-2004, Index Data.
  * See the file LICENSE for details.
  * 
- * $Id: proxy.h,v 1.31 2004-01-07 21:29:26 adam Exp $
+ * $Id: proxy.h,v 1.36 2004-01-15 23:44:58 adam Exp $
  */
 
 #include <sys/time.h>
@@ -167,6 +167,8 @@ class YAZ_EXPORT Yaz_ProxyClient : public Yaz_Z_Assoc {
     int m_pdu_recv;
     ODR m_init_odr;
     Z_APDU *m_initResponse;
+    Z_Options *m_initResponse_options;
+    Z_ProtocolVersion *m_initResponse_version;
     Yaz_RecordCache m_cache;
     void pre_init_client();
     int m_target_idletime;
@@ -243,6 +245,8 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc {
     void convert_to_marcxml(Z_NamePlusRecordList *p);
     void convert_xsl(Z_NamePlusRecordList *p);
     Z_APDU *m_initRequest_apdu;
+    Z_Options *m_initRequest_options;
+    Z_ProtocolVersion *m_initRequest_version;
     NMEM m_initRequest_mem;
     Z_APDU *m_apdu_invalid_session;
     NMEM m_mem_invalid_session;
@@ -251,17 +255,18 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc {
     ODR m_s2z_odr_search;
     int m_s2z_hit_count;
     int m_s2z_packing;
+    char *m_s2z_database;
     Z_APDU *m_s2z_init_apdu;
     Z_APDU *m_s2z_search_apdu;
     Z_APDU *m_s2z_present_apdu;
     char *m_s2z_stylesheet;
     char *m_soap_ns;
-    int send_to_srw_client_error(int error);
+    int send_to_srw_client_error(int error, const char *add);
     int send_to_srw_client_ok(int hits, Z_Records *records, int start);
     int send_http_response(int code);
     int send_srw_response(Z_SRW_PDU *srw_pdu);
-    int send_srw_explain();
-
+    int send_srw_explain_response(Z_SRW_diagnostic *diagnostics,
+                                 int num_diagnostics);
     int z_to_srw_diag(ODR o, Z_SRW_searchRetrieveResponse *srw_res,
                      Z_DefaultDiagFormat *ddf);
     int m_http_keepalive;
@@ -283,6 +288,7 @@ class YAZ_EXPORT Yaz_Proxy : public Yaz_Z_Assoc {
     void failNotify();
     void timeoutNotify();
     void connectNotify();
+    void markInvalid();
     const char *option(const char *name, const char *value);
     void set_default_target(const char *target);
     void set_proxy_authentication (const char *auth);