X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fzoom-c.c;h=fb69d855dcfcf3bcbbc5972628ba4309fbc26c42;hp=78c3948c532c00b8917457065d86007ee667a1ef;hb=922617826ecc28cbdcbc5e6d5037843c7985a408;hpb=0e1ac7200aeba08e2debbe83c951f1b47d1ef92e diff --git a/src/zoom-c.c b/src/zoom-c.c index 78c3948..fb69d85 100644 --- a/src/zoom-c.c +++ b/src/zoom-c.c @@ -2,7 +2,7 @@ * Copyright (C) 1995-2005, Index Data ApS * See the file LICENSE for details. * - * $Id: zoom-c.c,v 1.67 2006-04-01 07:21:12 adam Exp $ + * $Id: zoom-c.c,v 1.71 2006-05-09 16:13:28 mike Exp $ */ /** * \file zoom-c.c @@ -245,6 +245,12 @@ void ZOOM_connection_remove_task (ZOOM_connection c) assert (0); } xfree (task); + + if (!c->tasks) + { + ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_END); + ZOOM_connection_put_event(c, event); + } } } @@ -912,8 +918,8 @@ ZOOM_resultset_records (ZOOM_resultset r, ZOOM_record *recs, if (!r) return ; - yaz_log(log_api, "%p ZOOM_resultset_records r=%p start=%d count=%d", - r, r, start, count); + yaz_log(log_api, "%p ZOOM_resultset_records r=%p start=%ld count=%ld", + r, r, (long) start, (long) count); if (count && recs) force_present = 1; ZOOM_resultset_retrieve (r, force_present, start, count); @@ -1144,7 +1150,7 @@ static zoom_ret ZOOM_connection_send_init (ZOOM_connection c) ZOOM_options_get(c->options, "implementationName"), odr_prepend(c->odr_out, "ZOOM-C", ireq->implementationName)); - version = odr_strdup(c->odr_out, "$Revision: 1.67 $"); + version = odr_strdup(c->odr_out, "$Revision: 1.71 $"); if (strlen(version) > 10) /* check for unexpanded CVS strings */ version[strlen(version)-2] = '\0'; ireq->implementationVersion = odr_prepend(c->odr_out, @@ -1578,7 +1584,15 @@ ZOOM_resultset_record (ZOOM_resultset r, size_t pos) if (!rec) { - ZOOM_resultset_retrieve (r, 1, pos, 1); + /* + * MIKE: I think force_sync should always be zero, but I don't + * want to make this change until I get the go-ahead from + * Adam, in case something depends on the old synchronous + * behaviour. + */ + int force_sync = 1; + if (getenv("ZOOM_RECORD_NO_FORCE_SYNC")) force_sync = 0; + ZOOM_resultset_retrieve (r, force_sync, pos, 1); rec = ZOOM_resultset_record_immediate (r, pos); } return rec; @@ -1859,7 +1873,7 @@ ZOOM_record_get (ZOOM_record rec, const char *type_spec, int *len) } return 0; } - else if (!strcmp (type, "xml") || !strcmp(type, "oai")) + else if (!strcmp (type, "xml")) { Z_External *r = (Z_External *) npr->u.databaseRecord; oident *ent = oid_getentbyoid(r->direct_reference); @@ -1883,8 +1897,6 @@ ZOOM_record_get (ZOOM_record rec, const char *type_spec, int *len) const char *ret_buf; int marc_decode_type = YAZ_MARC_MARCXML; - if (!strcmp(type, "oai")) - marc_decode_type = YAZ_MARC_OAIMARC; switch (ent->value) { case VAL_SOIF: