X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fzoom-c.c;h=03d0e55d70187c81ee8c78cc91e595ce3407f6c6;hb=f7cd94cdd1d0ab8655419c6f5ca9ec19f659b2f1;hp=868044e02c6c7ab97463651a27edce65916130fe;hpb=3822378d7b75625b8b879025b22bffeb5483b788;p=yaz-moved-to-github.git diff --git a/src/zoom-c.c b/src/zoom-c.c index 868044e..03d0e55 100644 --- a/src/zoom-c.c +++ b/src/zoom-c.c @@ -2,7 +2,7 @@ * Copyright (C) 1995-2007, Index Data ApS * See the file LICENSE for details. * - * $Id: zoom-c.c,v 1.112 2007-02-21 09:17:51 adam Exp $ + * $Id: zoom-c.c,v 1.114 2007-02-21 12:53:01 adam Exp $ */ /** * \file zoom-c.c @@ -120,6 +120,13 @@ static ZOOM_Event ZOOM_connection_get_event(ZOOM_connection c) return event; } +static void ZOOM_connection_remove_events(ZOOM_connection c) +{ + ZOOM_Event event; + while ((event = ZOOM_connection_get_event(c))) + ZOOM_Event_destroy(event); +} + ZOOM_API(int) ZOOM_connection_peek_event(ZOOM_connection c) { ZOOM_Event event = c->m_queue_front; @@ -127,6 +134,8 @@ ZOOM_API(int) ZOOM_connection_peek_event(ZOOM_connection c) return event ? event->kind : ZOOM_EVENT_NONE; } +void ZOOM_connection_remove_tasks(ZOOM_connection c); + static void set_dset_error(ZOOM_connection c, int error, const char *dset, const char *addinfo, const char *addinfo2) @@ -172,7 +181,6 @@ static void set_HTTP_error(ZOOM_connection c, int error, } #endif -void ZOOM_connection_remove_tasks(ZOOM_connection c); static void set_ZOOM_error(ZOOM_connection c, int error, const char *addinfo) @@ -189,6 +197,8 @@ static void clear_error(ZOOM_connection c) * or Init Refused are not cleared, because they are not * recoverable: doing another search doesn't help. */ + + ZOOM_connection_remove_events(c); switch (c->error) { case ZOOM_ERROR_CONNECT: @@ -706,6 +716,7 @@ ZOOM_API(void) odr_destroy(c->odr_out); ZOOM_options_destroy(c->options); ZOOM_connection_remove_tasks(c); + ZOOM_connection_remove_events(c); xfree(c->host_port); xfree(c->path); xfree(c->proxy); @@ -1274,7 +1285,7 @@ static zoom_ret ZOOM_connection_send_init(ZOOM_connection c) odr_prepend(c->odr_out, "ZOOM-C", ireq->implementationName)); - version = odr_strdup(c->odr_out, "$Revision: 1.112 $"); + version = odr_strdup(c->odr_out, "$Revision: 1.114 $"); if (strlen(version) > 10) /* check for unexpanded CVS strings */ version[strlen(version)-2] = '\0'; ireq->implementationVersion =