projects
/
yaz-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ZOOM_record_cache_lookup makes RECV_RECORD event
[yaz-moved-to-github.git]
/
src
/
solr.c
diff --git
a/src/solr.c
b/src/solr.c
index
9897bb1
..
99a9519
100644
(file)
--- a/
src/solr.c
+++ b/
src/solr.c
@@
-1,5
+1,5
@@
/* This file is part of the YAZ toolkit.
/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2013 Index Data
+ * Copyright (C) Index Data
* See the file LICENSE for details.
*/
/**
* See the file LICENSE for details.
*/
/**
@@
-87,9
+87,8
@@
static void yaz_solr_decode_result_docs(ODR o, xmlNodePtr ptr,
record->recordSchema = 0;
record->recordPacking = Z_SRW_recordPacking_XML;
record->recordData_len = buf->use;
record->recordSchema = 0;
record->recordPacking = Z_SRW_recordPacking_XML;
record->recordData_len = buf->use;
- record->recordData_buf = odr_malloc(o, buf->use + 1);
- memcpy(record->recordData_buf, buf->content, buf->use);
- record->recordData_buf[buf->use] = '\0';
+ record->recordData_buf =
+ odr_strdupn(o, (const char *) buf->content, buf->use);
record->recordPosition = odr_intdup(o, start + offset + 1);
xmlBufferFree(buf);
record->recordPosition = odr_intdup(o, start + offset + 1);
xmlBufferFree(buf);
@@
-483,6
+482,7
@@
int yaz_solr_encode_request(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu,
char *q;
char *pos;
char *cp;
char *q;
char *pos;
char *cp;
+ const char *path_args = 0;
int i = 0;
z_HTTP_header_add_basic_auth(encode, &hreq->headers,
int i = 0;
z_HTTP_header_add_basic_auth(encode, &hreq->headers,
@@
-581,8
+581,17
@@
int yaz_solr_encode_request(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu,
path = (char *)
odr_malloc(encode, strlen(hreq->path) +
path = (char *)
odr_malloc(encode, strlen(hreq->path) +
- strlen(uri_args) + strlen(solr_op) + 4);
+ strlen(uri_args) + strlen(solr_op) + 5);
+ cp = strchr(hreq->path, '#');
+ if (cp)
+ *cp = '\0';
+ cp = strchr(hreq->path, '?');
+ if (cp)
+ {
+ *cp = '\0'; /* args in path */
+ path_args = cp + 1;
+ }
strcpy(path, hreq->path);
cp = strrchr(path, '/');
if (cp)
strcpy(path, hreq->path);
cp = strrchr(path, '/');
if (cp)
@@
-593,6
+602,11
@@
int yaz_solr_encode_request(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu,
strcat(path, "/");
strcat(path, solr_op);
strcat(path, "?");
strcat(path, "/");
strcat(path, solr_op);
strcat(path, "?");
+ if (path_args)
+ {
+ strcat(path, path_args);
+ strcat(path, "&");
+ }
strcat(path, uri_args);
hreq->path = path;
strcat(path, uri_args);
hreq->path = path;