X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=src%2Ffilter_sru_to_z3950.cpp;h=ba1f6af3733c8d6269364e12c42c25b3a5bc1143;hb=1439d0bf10a879e94e7edfdc813b514328d93070;hp=935f8f91c003aeb2e62f33f66d832e0ee28d866d;hpb=c980063f75d50d0869ea15fc5385bb9dd7072d85;p=metaproxy-moved-to-github.git diff --git a/src/filter_sru_to_z3950.cpp b/src/filter_sru_to_z3950.cpp index 935f8f9..ba1f6af 100644 --- a/src/filter_sru_to_z3950.cpp +++ b/src/filter_sru_to_z3950.cpp @@ -66,7 +66,7 @@ namespace metaproxy_1 { mp::odr &odr_en, Z_Query *z_query, const Z_SRW_searchRetrieveRequest *req ) const; - + bool z3950_init_request( mp::Package &package, mp::odr &odr_en, @@ -156,7 +156,7 @@ void yf::SRUtoZ3950::Impl::configure(const xmlNode *confignode) } // assigning explain node to database name - no check yet m_database_explain.insert(std::make_pair(database, explainnode)); - } + } } } @@ -254,7 +254,7 @@ void yf::SRUtoZ3950::Impl::sru(mp::Package &package, Z_GDU *zgdu_req) if (ok && sru_pdu_res->u.response->numberOfRecords && *(sru_pdu_res->u.response->numberOfRecords)) - + ok = z3950_present_request(package, odr_en, sru_pdu_res, sr_req); @@ -407,7 +407,7 @@ yf::SRUtoZ3950::Impl::z3950_init_request(mp::Package &package, if (z3950_gdu && z3950_gdu->which == Z_GDU_Z3950 && z3950_gdu->u.z3950->which == Z_APDU_initResponse && *z3950_gdu->u.z3950->u.initResponse->result) - return true; + return true; yaz_add_srw_diagnostic(odr_en, &(sru_pdu_res->u.response->diagnostics), @@ -463,8 +463,8 @@ bool yf::SRUtoZ3950::Impl::z3950_search_request(mp::Package &package, if (!mp_util::set_databases_from_zurl(odr_en, zurl, - &z_searchRequest->num_databaseNames, - &z_searchRequest->databaseNames)) + &z_searchRequest->num_databaseNames, + &z_searchRequest->databaseNames)) { z_searchRequest->num_databaseNames = 1; z_searchRequest->databaseNames = (char**) @@ -475,7 +475,7 @@ bool yf::SRUtoZ3950::Impl::z3950_search_request(mp::Package &package, = odr_strdup(odr_en, const_cast(sr_req->database)); else z_searchRequest->databaseNames[0] - = odr_strdup(odr_en, "Default"); + = odr_strdup(odr_en, "Default"); } // z3950'fy query @@ -487,7 +487,8 @@ bool yf::SRUtoZ3950::Impl::z3950_search_request(mp::Package &package, yaz_add_srw_diagnostic(odr_en, &(sru_pdu_res->u.response->diagnostics), &(sru_pdu_res->u.response->num_diagnostics), - 7, "query"); + YAZ_SRW_MANDATORY_PARAMETER_NOT_SUPPLIED, + "query"); return false; } @@ -512,7 +513,7 @@ bool yf::SRUtoZ3950::Impl::z3950_search_request(mp::Package &package, yaz_add_srw_diagnostic(odr_en, &(sru_pdu_res->u.response->diagnostics), &(sru_pdu_res->u.response->num_diagnostics), - 2, 0); + YAZ_SRW_SYSTEM_TEMPORARILY_UNAVAILABLE, 0); return false; } @@ -624,11 +625,8 @@ yf::SRUtoZ3950::Impl::z3950_present_request( max_recs = *sru_pdu_res->u.response->numberOfRecords - start + 1; Z_SRW_searchRetrieveResponse *sru_res = sru_pdu_res->u.response; - // srw'fy number of returned records - sru_res->num_records = max_recs; - sru_res->records = (Z_SRW_record *) odr_malloc(odr_en, - sru_res->num_records - * sizeof(Z_SRW_record)); + sru_res->records = (Z_SRW_record *) + odr_malloc(odr_en, max_recs * sizeof(Z_SRW_record)); int num = 0; while (num < max_recs) { @@ -808,8 +806,8 @@ yf::SRUtoZ3950::Impl::z3950_to_srw_diagnostics_ok(mp::odr &odr_en, int yf::SRUtoZ3950::Impl::z3950_to_srw_diag(mp::odr &odr_en, - Z_SRW_searchRetrieveResponse *sru_res, - Z_DefaultDiagFormat *ddf) const + Z_SRW_searchRetrieveResponse *sru_res, + Z_DefaultDiagFormat *ddf) const { int bib1_code = *ddf->condition; sru_res->num_diagnostics = 1;