X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fsolr.c;h=088fb63b3480a5fbe5f93485185d7777cfa3219a;hp=d3e4ee24afd14eb4ff83ba0f9944309204b733b1;hb=9d9a3021a47317e36d0154084297b15434e887c6;hpb=047d6669724619dd486a9bfa62cde1b909951491 diff --git a/src/solr.c b/src/solr.c index d3e4ee2..088fb63 100644 --- a/src/solr.c +++ b/src/solr.c @@ -452,6 +452,7 @@ int yaz_solr_encode_request(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, char *path; char *q; char *pos; + char *cp; int i = 0; z_HTTP_header_add_basic_auth(encode, &hreq->headers, @@ -560,7 +561,17 @@ int yaz_solr_encode_request(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, odr_malloc(encode, strlen(hreq->path) + strlen(uri_args) + strlen(solr_op) + 4); - sprintf(path, "%s/%s?%s", hreq->path, solr_op, uri_args); + strcpy(path, hreq->path); + cp = strrchr(path, '/'); + if (cp) + { + if (!strcmp(cp, "/select") || !strcmp(cp, "/")) + *cp = '\0'; + } + strcat(path, "/"); + strcat(path, solr_op); + strcat(path, "?"); + strcat(path, uri_args); hreq->path = path; z_HTTP_header_add_content_type(encode, &hreq->headers,