Release 1.6.4
[yazpp-moved-to-github.git] / src / yaz-ir-assoc.cpp
index a96a356..a681bf0 100644 (file)
@@ -1,13 +1,17 @@
 /* This file is part of the yazpp toolkit.
- * Copyright (C) 1998-2009 Index Data and Mike Taylor
+ * Copyright (C) Index Data 
  * See the file LICENSE for details.
  */
 
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
 #include <assert.h>
 
 #include <yaz/log.h>
 #include <yazpp/ir-assoc.h>
 #include <yaz/oid_db.h>
+#include <yaz/comstack.h>
 
 using namespace yazpp_1;
 
@@ -92,7 +96,7 @@ void IR_Assoc::set_databaseNames(const char *dblist, const char *sep)
 void IR_Assoc::set_preferredRecordSyntax (const char *syntax)
 {
     xfree(m_preferredRecordSyntax);
-    m_preferredRecordSyntax = 0;    
+    m_preferredRecordSyntax = 0;
     if (syntax && *syntax)
         m_preferredRecordSyntax = xstrdup(syntax);
 }
@@ -162,7 +166,7 @@ void IR_Assoc::recv_Z_PDU(Z_APDU *apdu, int len)
         recv_searchRequest(apdu->u.searchRequest);
         break;
     case Z_APDU_searchResponse:
-        yaz_log (m_log, "recv searchResponse"); 
+        yaz_log (m_log, "recv searchResponse");
         recv_searchResponse(apdu->u.searchResponse);
         break;
     case Z_APDU_presentRequest:
@@ -203,7 +207,7 @@ int IR_Assoc::send_searchRequest(Yaz_Z_Query *query,
     assert (req->otherInfo == 0);
     if (m_cookie)
     {
-        set_otherInformationString(&req->otherInfo, yaz_oid_userinfo_cookie, 
+        set_otherInformationString(&req->otherInfo, yaz_oid_userinfo_cookie,
                                    1, m_cookie);
         assert (req->otherInfo);
     }
@@ -221,10 +225,10 @@ int IR_Assoc::send_searchRequest(Yaz_Z_Query *query,
     return send_Z_PDU(apdu, 0);
 }
 
-int IR_Assoc::send_presentRequest(int start, 
-                                      int number, 
-                                      char* pResultSetId,
-                                      char* pRefId)
+int IR_Assoc::send_presentRequest(Odr_int start,
+                                  Odr_int number,
+                                  char* pResultSetId,
+                                  char* pRefId)
 {
     Z_APDU *apdu = create_Z_PDU(Z_APDU_presentRequest);
     Z_PresentRequest *req = apdu->u.presentRequest;
@@ -251,7 +255,7 @@ int IR_Assoc::send_presentRequest(int start,
     }
 
     if (m_cookie)
-        set_otherInformationString(&req->otherInfo, yaz_oid_userinfo_cookie, 
+        set_otherInformationString(&req->otherInfo, yaz_oid_userinfo_cookie,
                                    1, m_cookie);
 
     if ( pRefId )
@@ -299,9 +303,10 @@ void IR_Assoc::client(const char *addr)
     delete [] m_host;
     m_host = new char[strlen(addr)+1];
     strcpy(m_host, addr);
-    const char *dbpart = strchr(m_host, '/');
-    if (dbpart)
-        set_databaseNames (dbpart+1, "+ ");
+    const char *dbpart = 0;
+    cs_get_host_args(m_host, &dbpart);
+    if (dbpart && *dbpart)
+        set_databaseNames (dbpart, "+ ");
     Z_Assoc::client(m_proxy ? m_proxy : m_host);
 }
 
@@ -363,7 +368,7 @@ int IR_Assoc::send_initRequest(char* pRefId)
 {
     Z_APDU *apdu = create_Z_PDU(Z_APDU_initRequest);
     Z_InitRequest *req = apdu->u.initRequest;
-    
+
     ODR_MASK_SET(req->options, Z_Options_search);
     ODR_MASK_SET(req->options, Z_Options_present);
     ODR_MASK_SET(req->options, Z_Options_namedResultSets);
@@ -383,10 +388,10 @@ int IR_Assoc::send_initRequest(char* pRefId)
     }
 
     if (m_proxy && m_host)
-        set_otherInformationString(&req->otherInfo, yaz_oid_userinfo_proxy, 
+        set_otherInformationString(&req->otherInfo, yaz_oid_userinfo_proxy,
                                    1, m_host);
     if (m_cookie)
-        set_otherInformationString(&req->otherInfo, yaz_oid_userinfo_cookie, 
+        set_otherInformationString(&req->otherInfo, yaz_oid_userinfo_cookie,
                                    1, m_cookie);
     return send_Z_PDU(apdu, 0);
 }
@@ -409,17 +414,17 @@ int IR_Assoc::send_deleteResultSetRequest(char* pResultSetId, char* pRefId)
     {
         *req->deleteFunction = Z_DeleteResultSetRequest_all;
     }
-    
+
     if ( pRefId )
     {
         req->referenceId = getRefID(pRefId);
     }
 
     if (m_proxy && m_host)
-        set_otherInformationString(&req->otherInfo, yaz_oid_userinfo_proxy, 
+        set_otherInformationString(&req->otherInfo, yaz_oid_userinfo_proxy,
                                    1, m_host);
     if (m_cookie)
-        set_otherInformationString(&req->otherInfo, yaz_oid_userinfo_cookie, 
+        set_otherInformationString(&req->otherInfo, yaz_oid_userinfo_cookie,
                                    1, m_cookie);
 
     return send_Z_PDU(apdu, 0);
@@ -429,6 +434,7 @@ int IR_Assoc::send_deleteResultSetRequest(char* pResultSetId, char* pRefId)
 /*
  * Local variables:
  * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
  * indent-tabs-mode: nil
  * End:
  * vim: shiftwidth=4 tabstop=8 expandtab