- Z_NamePlusRecord *this_rec =
- (Z_NamePlusRecord *) odr_malloc (odr_encode(), sizeof(*this_rec));
- this_rec->databaseName = 0;
- this_rec->which = Z_NamePlusRecord_databaseRecord;
- this_rec->u.databaseRecord = 0;
-
- int this_length = 0;
-
- sr_record (resultSetName, recno, format, comp, this_rec, records);
-
- if (records->which != Z_Records_DBOSD)
- {
- *pres = Z_PRES_FAILURE;
- return records;
- }
-
- if (this_rec->which == Z_NamePlusRecord_databaseRecord &&
- this_rec->u.databaseRecord == 0)
- { // handler did not return a record..
- create_surrogateDiagnostics(odr_encode(), this_rec, 0, 14, 0);
- }
- /*
- * we get the number of bytes allocated on the stream before any
- * allocation done by the backend - this should give us a reasonable
- * idea of the total size of the data so far.
- */
- total_length = odr_total(odr_encode()) - dumped_records;
- this_length = odr_total(odr_encode()) - total_length;
- if (this_length + total_length > m_preferredMessageSize)
- {
- /* record is small enough, really */
- if (this_length <= m_preferredMessageSize)
- {
- *pres = Z_PRES_PARTIAL_2;
- break;
- }
- if (this_length >= m_maximumRecordSize)
- { /* too big entirely */
- reclist->records[reclist->num_records] = this_rec;
- create_surrogateDiagnostics(odr_encode(), this_rec,
- this_rec->databaseName, 17, 0);
- reclist->num_records++;
- *next = recno + 1;
- dumped_records += this_length;
- continue;
- }
- else /* record can only be fetched by itself */
- {
- if (toget > 1)
- {
- yaz_log(YLOG_DEBUG, " Dropped it");
- reclist->records[reclist->num_records] = this_rec;
- create_surrogateDiagnostics(odr_encode(), this_rec,
- this_rec->databaseName,
- 16, 0);
- reclist->num_records++;
- // *next = freq.last_in_set ? 0 : recno + 1;
- *next = recno + 1;
- dumped_records += this_length;
- continue;
- }
- }
- }
- reclist->records[reclist->num_records] = this_rec;
- reclist->num_records++;
- *next = recno + 1;
+ Z_NamePlusRecord *this_rec =
+ (Z_NamePlusRecord *) odr_malloc (odr_encode(), sizeof(*this_rec));
+ this_rec->databaseName = 0;
+ this_rec->which = Z_NamePlusRecord_databaseRecord;
+ this_rec->u.databaseRecord = 0;
+
+ int this_length = 0;
+
+ sr_record (resultSetName, recno, format, comp, this_rec, records);
+
+ if (records->which != Z_Records_DBOSD)
+ {
+ *pres = Z_PRES_FAILURE;
+ return records;
+ }
+
+ if (this_rec->which == Z_NamePlusRecord_databaseRecord &&
+ this_rec->u.databaseRecord == 0)
+ { // handler did not return a record..
+ create_surrogateDiagnostics(odr_encode(), this_rec, 0, 14, 0);
+ }
+ /*
+ * we get the number of bytes allocated on the stream before any
+ * allocation done by the backend - this should give us a reasonable
+ * idea of the total size of the data so far.
+ */
+ total_length = odr_total(odr_encode()) - dumped_records;
+ this_length = odr_total(odr_encode()) - total_length;
+ if (this_length + total_length > m_preferredMessageSize)
+ {
+ /* record is small enough, really */
+ if (this_length <= m_preferredMessageSize)
+ {
+ *pres = Z_PRES_PARTIAL_2;
+ break;
+ }
+ if (this_length >= m_maximumRecordSize)
+ { /* too big entirely */
+ reclist->records[reclist->num_records] = this_rec;
+ create_surrogateDiagnostics(odr_encode(), this_rec,
+ this_rec->databaseName, 17, 0);
+ reclist->num_records++;
+ *next = recno + 1;
+ dumped_records += this_length;
+ continue;
+ }
+ else /* record can only be fetched by itself */
+ {
+ if (toget > 1)
+ {
+ yaz_log(YLOG_DEBUG, " Dropped it");
+ reclist->records[reclist->num_records] = this_rec;
+ create_surrogateDiagnostics(odr_encode(), this_rec,
+ this_rec->databaseName,
+ 16, 0);
+ reclist->num_records++;
+ // *next = freq.last_in_set ? 0 : recno + 1;
+ *next = recno + 1;
+ dumped_records += this_length;
+ continue;
+ }
+ }
+ }
+ reclist->records[reclist->num_records] = this_rec;
+ reclist->num_records++;
+ *next = recno + 1;
- res->presentStatus = (int *) odr_malloc (odr_encode(), sizeof(int));
- *res->presentStatus = Z_PRES_SUCCESS;
- res->records =
- pack_records(s, req->resultSetName, 1, toget, compp,
- res->nextResultSetPosition,
- res->presentStatus,
- req->preferredRecordSyntax);
- if (!res->records)
- return;
- if (res->records->which == Z_Records_DBOSD)
- *res->numberOfRecordsReturned =
- res->records->u.databaseOrSurDiagnostics->num_records;
- res->searchStatus = sr;
- res->resultSetStatus = 0;
+ res->presentStatus = (int *) odr_malloc (odr_encode(), sizeof(int));
+ *res->presentStatus = Z_PRES_SUCCESS;
+ res->records =
+ pack_records(s, req->resultSetName, 1, toget, compp,
+ res->nextResultSetPosition,
+ res->presentStatus,
+ req->preferredRecordSyntax);
+ if (!res->records)
+ return;
+ if (res->records->which == Z_Records_DBOSD)
+ *res->numberOfRecordsReturned =
+ res->records->u.databaseOrSurDiagnostics->num_records;
+ res->searchStatus = sr;
+ res->resultSetStatus = 0;
- apdu_response = s->create_Z_PDU(Z_APDU_searchResponse);
- s->transfer_referenceId(apdu_request, apdu_response);
- sr_search (apdu_request->u.searchRequest,
- apdu_response->u.searchResponse);
- if (!apdu_response->u.searchResponse->records)
- {
- fetch_via_piggyback(s, apdu_request->u.searchRequest,
- apdu_response->u.searchResponse);
- }
- s->send_Z_PDU(apdu_response, 0);
- return 1;
+ apdu_response = s->create_Z_PDU(Z_APDU_searchResponse);
+ s->transfer_referenceId(apdu_request, apdu_response);
+ sr_search (apdu_request->u.searchRequest,
+ apdu_response->u.searchResponse);
+ if (!apdu_response->u.searchResponse->records)
+ {
+ fetch_via_piggyback(s, apdu_request->u.searchRequest,
+ apdu_response->u.searchResponse);
+ }
+ s->send_Z_PDU(apdu_response, 0);
+ return 1;
- apdu_response = s->create_Z_PDU(Z_APDU_presentResponse);
- s->transfer_referenceId(apdu_request, apdu_response);
- sr_present (apdu_request->u.presentRequest,
- apdu_response->u.presentResponse);
- if (!apdu_response->u.presentResponse->records)
- fetch_via_present(s, apdu_request->u.presentRequest,
- apdu_response->u.presentResponse);
- s->send_Z_PDU(apdu_response, 0);
- return 1;
+ apdu_response = s->create_Z_PDU(Z_APDU_presentResponse);
+ s->transfer_referenceId(apdu_request, apdu_response);
+ sr_present (apdu_request->u.presentRequest,
+ apdu_response->u.presentResponse);
+ if (!apdu_response->u.presentResponse->records)
+ fetch_via_present(s, apdu_request->u.presentRequest,
+ apdu_response->u.presentResponse);
+ s->send_Z_PDU(apdu_response, 0);
+ return 1;