* Sebastian Hammer, Adam Dickmeiss
*
* $Log: seshigh.c,v $
- * Revision 1.49 1995-10-16 13:51:53 quinn
+ * 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
+ * Simple.
+ *
+ * Revision 1.49 1995/10/16 13:51:53 quinn
* Changes to provide Especs to the backend.
*
* Revision 1.48 1995/10/06 08:51:20 quinn
#include <assert.h>
#include <sys/time.h>
-#include <dmalloc.h>
+#include <xmalloc.h>
#include <comstack.h>
#include <eventl.h>
#include <session.h>
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;
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)
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;
odr_setbuf(assoc->decode, assoc->input_buffer, res, 0);
if (!z_APDU(assoc->decode, &req->request, 0))
{
- logf(LOG_LOG, "ODR error on incoming PDU: %s",
- odr_errlist[odr_geterror(assoc->decode)]);
+ logf(LOG_LOG, "ODR error on incoming PDU: %s [near byte %d] ",
+ odr_errlist[odr_geterror(assoc->decode)],
+ odr_offset(assoc->decode));
logf(LOG_LOG, "PDU dump:");
odr_dumpBER(log_file(), assoc->input_buffer, res);
do_close(assoc, Z_Close_protocolError, "Malformed package");
}
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))
{
else
{
static int toget;
- Z_RecordComposition comp;
+ Z_RecordComposition comp, *compp = 0;
static int presst = 0;
resp.records = 0;
if (bsrt->hits <= *req->smallSetUpperBound)
{
toget = bsrt->hits;
- comp.u.simple = req->smallSetElementSetNames;
+ if ((comp.u.simple = req->smallSetElementSetNames))
+ compp = ∁
}
else if (bsrt->hits < *req->largeSetLowerBound)
{
toget = *req->mediumSetPresentNumber;
if (toget > bsrt->hits)
toget = bsrt->hits;
- comp.u.simple = req->mediumSetElementSetNames;
+ if ((comp.u.simple = req->mediumSetElementSetNames))
+ compp = ∁
}
else
toget = 0;
else
form = prefformat->value;
resp.records = pack_records(assoc, req->resultSetName, 1,
- &toget, &comp, &next, &presst, form);
+ &toget, compp, &next, &presst, form);
if (!resp.records)
return 0;
resp.numberOfRecordsReturned = &toget;