Pull present status from presresp.
[egate.git] / zlayer / zaccess.c
index be3316a..d0fd1b4 100644 (file)
@@ -2,7 +2,16 @@
  * Europagate, 1995
  *
  * $Log: zaccess.c,v $
- * Revision 1.9  1995/02/17 15:17:51  quinn
+ * 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
+ * More relaxed about record types.
+ *
+ * Revision 1.9  1995/02/17  15:17:51  quinn
  * Bug fix
  *
  * Revision 1.8  1995/02/17  14:48:41  quinn
@@ -342,13 +351,19 @@ void get_responserecords(zass_record ***p, DATA_DIR *rec)
        else
        {
            gw_log(GW_LOG_WARN, ZASS_TYPE, "ZLAYER only knows USMARC at this point.");
-           return;
+           gw_log(GW_LOG_WARN, ZASS_TYPE, "Type was '%d'", (**p)->which);
        }
        align = External_GetEncodingAligned(ext);
        if (!align)
        {
-           gw_log(GW_LOG_WARN, ZASS_TYPE, "AAAARRRGH!! Enough of these log-messages!!!");
-           return;
+           gw_log(GW_LOG_WARN, ZASS_TYPE, "Record wasn't octet-aligned");
+           align = External_GetEncodingSingle(ext);
+           if (!align)
+           {
+               gw_log(GW_LOG_WARN, ZASS_TYPE, "Record wasn't ANY");
+               return;
+           }
+           align = align->ptr.child;
        }
        if (!((**p)->record = malloc(align->count + 1)))
        {
@@ -424,6 +439,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.");
@@ -431,7 +447,6 @@ const struct zass_presentent *zass_present(ZASS a, char *resname, int start,
        }
        r.nextpos = PresentResponse_GetNextResultSetPosition(pdu);
        start = r.nextpos;
-       r.num;
        switch(PresentResponse_GetRecordType(pdu))
        {
            case RESPONSERECORDS_TAG: