X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=server%2Fseshigh.c;h=11815cffcce38f2621b0b317168bc47a2c83e500;hb=cbeb1227a16f62975115e1e9216ccf2724bfd046;hp=8923b418112cff96ff36fc20e70215fe28d85805;hpb=bc5e5d4ed7440baeac26adbbeedc5719d9b18dac;p=yaz-moved-to-github.git diff --git a/server/seshigh.c b/server/seshigh.c index 8923b41..11815cf 100644 --- a/server/seshigh.c +++ b/server/seshigh.c @@ -3,7 +3,16 @@ * See the file LICENSE for details. * * $Log: seshigh.c,v $ - * Revision 1.105 2000-07-06 10:38:47 adam + * Revision 1.108 2000-09-04 08:58:15 adam + * Added prefix yaz_ for most logging utility functions. + * + * Revision 1.107 2000/08/31 10:20:12 adam + * Added member request_format and output_format for backend fetch method. + * + * Revision 1.106 2000/08/31 09:51:25 adam + * Added record_syntax member for fetch method (raw OID). + * + * Revision 1.105 2000/07/06 10:38:47 adam * Enhanced option --enable-tcpd. * * Revision 1.104 2000/04/05 07:39:55 adam @@ -602,7 +611,7 @@ void ir_session(IOCHAN h, int event) odr_errmsg(odr_geterror(assoc->decode)), odr_offset(assoc->decode)); yaz_log(LOG_LOG, "PDU dump:"); - odr_dumpBER(log_file(), assoc->input_buffer, res); + odr_dumpBER(yaz_log_file(), assoc->input_buffer, res); do_close(assoc, Z_Close_protocolError, "Malformed package"); return; } @@ -1138,9 +1147,10 @@ static Z_DiagRecs *diagrecs(association *assoc, int error, char *addinfo) } static Z_Records *pack_records(association *a, char *setname, int start, - int *num, Z_RecordComposition *comp, - int *next, int *pres, oid_value format, - Z_ReferenceId *referenceId) + int *num, Z_RecordComposition *comp, + int *next, int *pres, oid_value format, + Z_ReferenceId *referenceId, + int *oid) { int recno, total_length = 0, toget = *num, dumped_records = 0; Z_Records *records = @@ -1183,7 +1193,9 @@ static Z_Records *pack_records(association *a, char *setname, int start, freq.number = recno; freq.comp = comp; freq.request_format = format; - freq.output_format = 0; + freq.request_format_raw = oid; + freq.output_format = format; + freq.output_format_raw = 0; freq.stream = a->encode; freq.print = a->print; freq.surrogate_flag = 0; @@ -1255,6 +1267,12 @@ static Z_Records *pack_records(association *a, char *setname, int start, return 0; strcpy(thisrec->databaseName, freq.basename); thisrec->which = Z_NamePlusRecord_databaseRecord; + + if (freq.output_format_raw) + { + struct oident *ident = oid_getentbyoid(freq.output_format_raw); + freq.output_format = ident->value; + } thisrec->u.databaseRecord = z_ext_record(a->encode, freq.output_format, freq.record, freq.len); if (!thisrec->u.databaseRecord) @@ -1423,7 +1441,8 @@ static Z_APDU *response_searchRequest(association *assoc, request *reqb, else form = prefformat->value; resp->records = pack_records(assoc, req->resultSetName, 1, - toget, compp, next, presst, form, req->referenceId); + toget, compp, next, presst, form, req->referenceId, + req->preferredRecordSyntax); if (!resp->records) return 0; resp->numberOfRecordsReturned = toget; @@ -1462,7 +1481,7 @@ static Z_APDU *response_searchRequest(association *assoc, request *reqb, * speed - which is normally more true for search than for present. */ static Z_APDU *process_presentRequest(association *assoc, request *reqb, - int *fd) + int *fd) { Z_PresentRequest *req = reqb->request->u.presentRequest; oident *prefformat; @@ -1518,7 +1537,7 @@ static Z_APDU *process_presentRequest(association *assoc, request *reqb, resp->records = pack_records(assoc, req->resultSetId, *req->resultSetStartPoint, num, req->recordComposition, next, presst, form, - req->referenceId); + req->referenceId, req->preferredRecordSyntax); if (!resp->records) return 0; resp->numberOfRecordsReturned = num;