X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=server%2Fseshigh.c;h=71f68d74731ffc65cb80a77e66a12a058ccfa671;hb=b3c7ee20442440628e2772c087bdf55c8b007fce;hp=eedf04062028caeb96c3512243e71977596f8d09;hpb=58f8067bb0bac4d08b7fae8e0e93159759ce4dfa;p=yaz-moved-to-github.git diff --git a/server/seshigh.c b/server/seshigh.c index eedf040..71f68d7 100644 --- a/server/seshigh.c +++ b/server/seshigh.c @@ -2,7 +2,7 @@ * Copyright (c) 1995-2003, Index Data * See the file LICENSE for details. * - * $Id: seshigh.c,v 1.161 2003-09-09 16:03:46 mike Exp $ + * $Id: seshigh.c,v 1.163 2003-10-20 20:48:37 adam Exp $ */ /* @@ -213,6 +213,7 @@ static void do_close_req(association *a, int reason, char *message, } else { + request_release(req); yaz_log(LOG_DEBUG, "v2 client. No Close PDU"); iochan_setevent(a->client_chan, EVENT_TIMEOUT); /* force imm close */ } @@ -221,7 +222,8 @@ static void do_close_req(association *a, int reason, char *message, static void do_close(association *a, int reason, char *message) { - do_close_req (a, reason, message, request_get(&a->outgoing)); + request *req = request_get(&a->outgoing); + do_close_req (a, reason, message, req); } /* @@ -336,7 +338,8 @@ void ir_session(IOCHAN h, int event) { yaz_log(LOG_LOG, "PDU dump:"); odr_dumpBER(yaz_log_file(), assoc->input_buffer, res); - do_close(assoc, Z_Close_protocolError, "Malformed package"); + request_release(req); + do_close(assoc, Z_Close_protocolError,"Malformed package"); } else { @@ -1387,6 +1390,7 @@ static int process_gdu_response(association *assoc, request *req, Z_GDU *res) yaz_log(LOG_WARN, "ODR error when decoding PDU: %s [element %s]", odr_errmsg(odr_geterror(assoc->decode)), odr_getelement(assoc->decode)); + request_release(req); return -1; } req->response = odr_getbuf(assoc->encode, &req->len_response,