X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=server%2Fseshigh.c;h=174c73abb47bdffbb2dd950ce59eb441b6019b55;hb=9f397feecfd366f335e8a7e30b13431790c00f84;hp=68114022c130ed9f74d82b20ae0a86be72b317e8;hpb=1db60f5a7396b9b37560f6b6962be0b68240486c;p=yaz-moved-to-github.git diff --git a/server/seshigh.c b/server/seshigh.c index 6811402..174c73a 100644 --- a/server/seshigh.c +++ b/server/seshigh.c @@ -4,7 +4,16 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: seshigh.c,v $ - * Revision 1.35 1995-06-15 07:45:14 quinn + * Revision 1.38 1995-06-19 12:39:11 quinn + * Fixed bug in timeout code. Added BER dumper. + * + * Revision 1.37 1995/06/16 13:16:14 quinn + * Fixed Defaultdiagformat. + * + * Revision 1.36 1995/06/16 10:31:36 quinn + * Added session timeout. + * + * Revision 1.35 1995/06/15 07:45:14 quinn * Moving to v3. * * Revision 1.34 1995/06/14 15:26:46 quinn @@ -277,6 +286,14 @@ void ir_session(IOCHAN h, int event) request *req; assert(h && conn && assoc); + if (event == EVENT_TIMEOUT) + { + logf(LOG_LOG, "Timeout - closing connection."); + cs_close(conn); + destroy_association(assoc); + iochan_destroy(h); + return; + } if (event & EVENT_INPUT || event & EVENT_WORK) /* input */ { if (event & EVENT_INPUT) @@ -313,8 +330,10 @@ void ir_session(IOCHAN h, int event) odr_setbuf(assoc->decode, assoc->input_buffer, res, 0); if (!z_APDU(assoc->decode, &req->request, 0)) { - logf(LOG_WARN, "ODR error: %s", + logf(LOG_LOG, "ODR error on incoming PDU: %s", odr_errlist[odr_geterror(assoc->decode)]); + logf(LOG_LOG, "PDU dump:"); + odr_dumpBER(log_file(), assoc->input_buffer, res); cs_close(conn); destroy_association(assoc); iochan_destroy(h); @@ -609,6 +628,7 @@ static Z_Records *diagrec(oid_proto proto, int error, char *addinfo) #endif dr.diagnosticSetId = oid_getoidbyent(&bib1); dr.condition = &err; + dr.which = Z_DiagForm_v2AddInfo; dr.addinfo = addinfo ? addinfo : ""; return &rec; } @@ -646,6 +666,7 @@ static Z_NamePlusRecord *surrogatediagrec(oid_proto proto, char *dbname, #endif dr.diagnosticSetId = oid_getoidbyent(&bib1); dr.condition = &err; + dr.which = Z_DiagForm_v2AddInfo; dr.addinfo = addinfo ? addinfo : ""; return &rec; } @@ -682,6 +703,7 @@ static Z_DiagRecs *diagrecs(oid_proto proto, int error, char *addinfo) #endif rec.diagnosticSetId = oid_getoidbyent(&bib1); rec.condition = &err; + rec.which = Z_DiagForm_v2AddInfo; rec.addinfo = addinfo ? addinfo : ""; return &recs; }