44 c, (
int) oid_class, str);
67 if (!strcmp (str,
"create"))
69 if (!strcmp (str,
"delete"))
71 if (!strcmp (str,
"modify"))
78 if (!strcmp (str,
"wait"))
80 if (!strcmp (str,
"waitIfPossible"))
82 if (!strcmp (str,
"dontWait"))
84 if (!strcmp (str,
"dontReturnPackage"))
111 int ill_request_size;
112 char *ill_request_buf =
odr_getbuf(out, &ill_request_size, 0);
114 odr_setbuf(out, ill_request_buf, ill_request_size, 1);
119 int illRequest_size = 0;
120 char *illRequest_buf =
odr_getbuf(out, &illRequest_size, 0);
130 (
unsigned char *)illRequest_buf,
189 (str ? atoi(str) : 1);
214 const char *first_db =
"Default";
250 *notToKeepP = notToKeep;
283 const char *first_db =
"Default";
288 int recordIdOpaque_len;
290 &recordIdOpaque_len);
295 int recordOpaque_len;
301 const char *correlationInfo_note =
303 const char *correlationInfo_id =
313 if (!record_buf && !recordOpaque_buf)
317 syntax_str =
"SUTRS";
341 action =
"recordInsert";
345 action =
"specialUpdate";
350 action =
"specialUpdate";
358 if (!strcmp(action,
"recordInsert"))
360 else if (!strcmp(action,
"recordReplace"))
362 else if (!strcmp(action,
"recordDelete"))
364 else if (!strcmp(action,
"elementUpdate"))
366 else if (!strcmp(action,
"specialUpdate"))
381 const char *elementSetName =
421 (
const unsigned char *) recordIdOpaque,
424 else if (recordIdNumber)
434 if (correlationInfo_note || correlationInfo_id)
440 ci->
id = correlationInfo_id ?
445 if (recordOpaque_buf)
449 recordOpaque_buf, recordOpaque_len);
455 record_buf, record_len);
462 z_APDU(print, &apdu, 0, 0);
472 for (i = 0; i<200; i++)
481 sprintf(buf,
"otherInfo%d", i);
485 cp = strchr(val,
':');
489 if (len >=
sizeof(buf))
491 memcpy(buf, val, len);
524 if (!
z_APDU(out, &a, 0, 0))
526 FILE *outf = fopen(
"/tmp/apdu.txt",
"a");
530 fprintf(outf,
"a=%p\n", a);
643 int lslb, ssub, mspn;
647 const char *elementSetName;
648 const char *smallSetElementSetName;
649 const char *mediumSetElementSetName;
661 smallSetElementSetName =
663 mediumSetElementSetName =
666 if (!smallSetElementSetName)
667 smallSetElementSetName = elementSetName;
669 if (!mediumSetElementSetName)
670 mediumSetElementSetName = elementSetName;
689 if (!search_req->
query)
728 if (lslb != -1 && ssub != -1 && mspn != -1)
747 smallSetElementSetName = 0;
748 mediumSetElementSetName = 0;
751 if (smallSetElementSetName && *smallSetElementSetName)
760 if (mediumSetElementSetName && *mediumSetElementSetName)
781 for (ord = 1; ; ord++)
783 #if ZOOM_RESULT_LISTS
785 sprintf(setname,
"%d", ord);
787 if (rsp->resultset->setname && !strcmp(rsp->resultset->setname, setname))
793 sprintf(setname,
"%d", ord);
804 "allocating set %s", c, r->
setname);
900 if (!strcmp(type,
"itemorder"))
917 else if (!strcmp(type,
"create"))
922 else if (!strcmp(type,
"drop"))
927 else if (!strcmp(type,
"commit"))
932 else if (!strcmp(type,
"update"))
936 else if (!strcmp(type,
"xmlupdate"))
942 if (
encode_APDU(p->connection, apdu, p->odr_out) == 0)
949 p->buf_out = (
char *)
xmalloc(p->len_out);
950 memcpy(p->buf_out, buf, p->len_out);
968 const char *oid_name;
1024 "targetReference", (
char*) id->
buf, id->
len);
1082 "xmlUpdateDoc", (
char*) doc->
buf, doc->
len);
1089 switch (term->
which) {
1106 facet_field->num_terms = facet->
num_terms;
1108 facet_field->facet_terms =
odr_malloc(odr, facet_field->num_terms *
sizeof(*facet_field->facet_terms));
1109 for (term_index = 0 ; term_index < facet->
num_terms; term_index++) {
1111 facet_field->facet_terms[term_index].frequency = *facetTerm->
count;
1112 facet_field->facet_terms[term_index].term =
get_term_cstr(odr, facetTerm->
term);
1114 term_index, facet_field->facet_terms[term_index].term, facet_field->facet_terms[term_index].frequency);
1127 for (j = 0; j < fl->
num; j++)
1156 switch (term->
which)
1182 sprintf(opt_name,
"%s.term", name);
1209 resultset->
options,
"searchresult.size", sr->
num);
1211 for (j = 0; j < sr->
num; j++)
1217 sprintf(pref,
"searchresult.%d", j);
1222 sprintf(opt_name,
"%s.id", pref);
1229 sprintf(opt_name,
"%s.subquery", pref);
1236 sprintf(opt_name,
"%s.interpretation", pref);
1243 sprintf(opt_name,
"%s.recommendation", pref);
1250 sprintf(opt_name,
"%s.count", pref);
1330 const char *syntax = 0, *elementSetName = 0;
1364 if (*count + *start > resultset->
size)
1365 *count = resultset->
size - *start;
1377 syntax, elementSetName,
1385 "handle_records resultset=%p start=%d count=%d",
1386 resultset, *start, *count);
1398 "ZOOM C generated. Present phase and no records");
1400 syntax, elementSetName, 0, 0);
1403 else if (present_phase)
1410 "ZOOM C generated: Present response and no records");
1412 syntax, elementSetName, 0, 0);
1428 sprintf(buf,
"init_opt_%.70s", name);
1460 const char *syntax = 0;
1461 const char *elementSetName = 0;
1493 if (*start < 0 || *count < 0 || *start + *count > resultset->
size)
1501 resultset, *start, *count);
1503 for (i = 0; i < *count; i++)
1507 syntax, elementSetName);
1533 if (resultset->
step > 0 && resultset->
step < *count)
1542 if (syntax && *syntax)
1573 if (elementSetName && *elementSetName)
1589 else if (elementSetName && *elementSetName)
1624 switch (apdu->
which)
1627 yaz_log(c->
log_api,
"%p handle_Z3950_apdu: Received Init response", c);
1687 char *charset = NULL, *lang = NULL;
1692 "charset %s, language %s, select %d",
1694 charset ? charset :
"none", lang ? lang :
"none", sel);
1703 c,
"negotiation-charset-in-effect-for-records",
1704 (sel != 0) ?
"1" :
"0");
1733 yaz_log(c->
log_api,
"%p handle_Z3950_apdu Extended Services response", c);