X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fseshigh.c;h=6e18d01dce7eec4e3b3ba46eee34275572e9a62f;hb=854382b8be93e0673106fa27474a01149b2a04ce;hp=1949eb91b73984aa7d63dba4fc8210d7a34706ca;hpb=9782c90f15aaf9e68b404ddc8fa9b9a078e7df55;p=yaz-moved-to-github.git diff --git a/src/seshigh.c b/src/seshigh.c index 1949eb9..6e18d01 100644 --- a/src/seshigh.c +++ b/src/seshigh.c @@ -74,7 +74,7 @@ #include #include #include - +#include #include #include #include @@ -1862,8 +1862,8 @@ static void process_http_request(association *assoc, request *req) if (sr->which == Z_SRW_searchRetrieve_request) { Z_SRW_PDU *res = - yaz_srw_get_pdu(assoc->encode, Z_SRW_searchRetrieve_response, - sr->srw_version); + yaz_srw_get_pdu_e(assoc->encode, Z_SRW_searchRetrieve_response, + sr); stylesheet = sr->u.request->stylesheet; if (num_diagnostic) { @@ -1879,8 +1879,7 @@ static void process_http_request(association *assoc, request *req) } else if (sr->which == Z_SRW_explain_request) { - Z_SRW_PDU *res = yaz_srw_get_pdu(o, Z_SRW_explain_response, - sr->srw_version); + Z_SRW_PDU *res = yaz_srw_get_pdu_e(o, Z_SRW_explain_response, sr); stylesheet = sr->u.explain_request->stylesheet; if (num_diagnostic) { @@ -1894,8 +1893,7 @@ static void process_http_request(association *assoc, request *req) } else if (sr->which == Z_SRW_scan_request) { - Z_SRW_PDU *res = yaz_srw_get_pdu(o, Z_SRW_scan_response, - sr->srw_version); + Z_SRW_PDU *res = yaz_srw_get_pdu_e(o, Z_SRW_scan_response, sr); stylesheet = sr->u.scan_request->stylesheet; if (num_diagnostic) { @@ -2709,6 +2707,19 @@ static Z_APDU *process_searchRequest(association *assoc, request *reqb) bsrr->search_input = req->otherInfo; bsrr->present_number = *req->mediumSetPresentNumber; + if (assoc->server && assoc->server->client_query_charset && + req->query->which == Z_Query_type_1) + { + yaz_iconv_t cd = + yaz_iconv_open("UTF-8", assoc->server->client_query_charset); + if (cd) + { + yaz_query_charset_convert_rpnquery(req->query->u.type_1, + assoc->decode, cd); + yaz_iconv_close(cd); + } + } + if (assoc->server && assoc->server->cql_transform && req->query->which == Z_Query_type_104 && req->query->u.type_104->which == Z_External_CQL)