X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=zlayer%2Fzaccess.c;h=0420161026213c3f5b3ff3558147aac71e426d71;hb=f6164c93ea8b575c43586bd08b34122b37f5f7af;hp=ea774ea7a5370c418cf20f9041eb689d32f51356;hpb=fa1807dd17ca61f2eb3b1b9447913caf83355bcf;p=egate.git diff --git a/zlayer/zaccess.c b/zlayer/zaccess.c index ea774ea..0420161 100644 --- a/zlayer/zaccess.c +++ b/zlayer/zaccess.c @@ -1,8 +1,19 @@ /* * Europagate, 1995 * + * Z39.50 API for the Email gateway + * * $Log: zaccess.c,v $ - * Revision 1.11 1995/02/20 18:58:05 quinn + * Revision 1.15 1995/04/17 11:26:55 quinn + * Added YAZ version of zaccess + * + * Revision 1.14 1995/02/23 08:32:26 adam + * Changed header. + * + * Revision 1.12 1995/02/20 20:35:37 quinn + * Pull present status from presresp. + * + * Revision 1.11 1995/02/20 18:58:05 quinn * Added hack for record in ANY * * Revision 1.10 1995/02/20 18:19:30 quinn @@ -116,6 +127,7 @@ ZASS zass_open(char *host, int port) PINITREQUEST ireq; PINITRESPONSE ires; int len; + char name[512]; if (!(p = malloc(sizeof(*p)))) { @@ -146,8 +158,9 @@ ZASS zass_open(char *host, int port) } gw_log(ZASS_DEBUG, ZASS_TYPE, "Opened connection to %s:%d", p->ass->HostName, p->ass->Port); + sprintf(name, "%s (ZDIST protocol layer)", ZASS_NAME); ireq = InitRequest_CreateInitAllASCII(0, "yy", "yy", p->maxrecordsize, - p->preferredmessagesize, ZASS_ID, ZASS_NAME, ZASS_VERSION, 0); + p->preferredmessagesize, ZASS_ID, name, ZASS_VERSION, 0); if (!ireq) { gw_log(GW_LOG_FATAL, "ZASS_TYPE", "failed to create initrequest"); @@ -436,6 +449,7 @@ const struct zass_presentent *zass_present(ZASS a, char *resname, int start, } gw_log(ZASS_DEBUG, ZASS_TYPE, "Got presentresponse"); r.num += PresentResponse_GetNumberOfRecordsReturned(pdu); + r.presentstatus = PresentResponse_GetPresentStatus(pdu); if (r.num == 0) { gw_log(GW_LOG_WARN, ZASS_TYPE, "Got 0 records from target."); @@ -456,7 +470,7 @@ const struct zass_presentent *zass_present(ZASS a, char *resname, int start, } PresentResponse_Destroy(pdu); } - while (num - r.num); + while (num - r.num && start); *rec = 0; return &r;