X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fzoom-sru.c;h=144f025159b894289914c2c852a77cffe6439b6b;hp=1932f09d9e0dd0df59527541d5497aea4d7e266a;hb=2ad2651374674c895ad59b267da6fe2d8665fabd;hpb=1c256a41a684b68d2dea7c5bad34e02293a60de9 diff --git a/src/zoom-sru.c b/src/zoom-sru.c index 1932f09..144f025 100644 --- a/src/zoom-sru.c +++ b/src/zoom-sru.c @@ -24,7 +24,6 @@ static void set_SRU_error(ZOOM_connection c, Z_SRW_diagnostic *d) #endif - #if YAZ_HAVE_XML2 static zoom_ret send_srw(ZOOM_connection c, Z_SRW_PDU *sr) { @@ -50,6 +49,10 @@ static zoom_ret send_srw(ZOOM_connection c, Z_SRW_PDU *sr) { yaz_sru_soap_encode(gdu->u.HTTP_Request, sr, c->odr_out, c->charset); } + else if (c->sru_mode == zoom_sru_solr) + { + yaz_solr_encode(gdu->u.HTTP_Request, sr, c->odr_out, c->charset); + } if (!z_GDU(c->odr_out, &gdu, 0, 0)) return zoom_complete; if (c->odr_print) @@ -378,7 +381,18 @@ int ZOOM_handle_sru(ZOOM_connection c, Z_HTTP_Response *hres, /* not redirect (normal response) */ if (!yaz_srw_check_content_type(hres)) + { addinfo = "content-type"; + ret = -1; + } + else if (c->sru_mode == zoom_sru_solr) + { + Z_SRW_PDU *sr; + ret = yaz_solr_decode(c->odr_in, hres, &sr); + if (ret == 0) + if (sr->which == Z_SRW_searchRetrieve_response) + *cret = handle_srw_response(c, sr->u.response); + } else { Z_SOAP *soap_package = 0;