X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=server%2Fseshigh.c;h=6866f9857d099294fcc10b6678388d015cd4e25a;hb=b2d4fae21009b1909a35ef9ae6bcd27c1a5dca74;hp=9c89f0d3de20ebfafa3f49d77f415c9eb067d0c0;hpb=a8b671f524437f17d856b567a5e3b4648c83fe6c;p=yaz-moved-to-github.git diff --git a/server/seshigh.c b/server/seshigh.c index 9c89f0d..6866f98 100644 --- a/server/seshigh.c +++ b/server/seshigh.c @@ -4,7 +4,19 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: seshigh.c,v $ - * Revision 1.52 1995-11-01 12:19:13 quinn + * Revision 1.56 1995-12-14 11:09:57 quinn + * Work on Explain + * + * Revision 1.55 1995/11/08 17:41:37 quinn + * Smallish. + * + * Revision 1.54 1995/11/08 15:11:29 quinn + * Log of close transmit. + * + * Revision 1.53 1995/11/01 13:54:58 quinn + * Minor adjustments + * + * Revision 1.52 1995/11/01 12:19:13 quinn * Second attempt to fix same bug. * * Revision 1.50 1995/10/25 16:58:32 quinn @@ -196,7 +208,7 @@ #include #include -#include +#include #include #include #include @@ -235,7 +247,7 @@ association *create_association(IOCHAN channel, COMSTACK link) if (!control_block) control_block = statserv_getcontrol(); - if (!(new = malloc(sizeof(*new)))) + if (!(new = xmalloc(sizeof(*new)))) return 0; new->client_chan = channel; new->client_link = link; @@ -301,12 +313,12 @@ void destroy_association(association *h) if (h->print) odr_destroy(h->print); if (h->input_buffer) - free(h->input_buffer); + xfree(h->input_buffer); if (h->backend) bend_close(h->backend); while (request_deq(&h->incoming)); while (request_deq(&h->outgoing)); - free(h); + xfree(h); } static void do_close(association *a, int reason, char *message) @@ -320,7 +332,8 @@ static void do_close(association *a, int reason, char *message) while (request_deq(&a->outgoing)); if (a->version >= 3) { - logf(LOG_DEBUG, "Generating Close PDU"); + logf(LOG_LOG, "Sending Close PDU, reason=%d, message=%s", + reason, message ? message : "none"); apdu.which = Z_APDU_close; apdu.u.close = cls; *cls->closeReason = reason; @@ -445,7 +458,7 @@ void ir_session(IOCHAN h, int event) break; case 0: /* all sent - release the request structure */ logf(LOG_DEBUG, "Wrote PDU, %d bytes", req->len_response); - odr_release_mem(req->request_mem); + nmem_destroy(req->request_mem); request_deq(&assoc->outgoing); request_release(req); if (!request_head(&assoc->outgoing)) @@ -566,11 +579,12 @@ static int process_response(association *assoc, request *req, Z_APDU *res) { logf(LOG_WARN, "ODR error when encoding response: %s", odr_errlist[odr_geterror(assoc->decode)]); + odr_reset(assoc->encode); return -1; } req->response = odr_getbuf(assoc->encode, &req->len_response, &req->size_response); - odr_setbuf(assoc->encode, 0, 0, 0); /* don't free if we abort later */ + odr_setbuf(assoc->encode, 0, 0, 0); /* don'txfree if we abort later */ odr_reset(assoc->encode); if (assoc->print && !z_APDU(assoc->print, &res, 0)) {