/* This file is part of the yazpp toolkit.
- * Copyright (C) 1998-2012 Index Data and Mike Taylor
+ * Copyright (C) Index Data
* See the file LICENSE for details.
*/
#include <yaz/otherinfo.h>
#include <yaz/charneg.h>
#include <yaz/log.h>
+#include <yaz/odr.h>
#include <zlint.h>
int m_test_reported;
};
-Zlint::Zlint(IPDU_Observable *the_PDU_Observable) :
+Zlint::Zlint(IPDU_Observable *the_PDU_Observable) :
Z_Assoc(the_PDU_Observable)
-
+
{
m_PDU_Observable = the_PDU_Observable;
m_host = 0;
{
if (m_cur_test->m_t->recv_fail(this, 2) != TEST_FINISHED)
{
- close();
client(m_host);
timeout(30);
return;
}
+ close_goto_next();
}
- close_goto_next();
}
void Zlint::failNotify()
{
if (m_cur_test->m_t->recv_fail(this, 1) != TEST_FINISHED)
{
- close();
client(m_host);
timeout(30);
return;
}
+ close_goto_next();
}
- close_goto_next();
}
void Zlint::connectNotify()
{
if (m_cur_test->m_t->init(this) != TEST_FINISHED)
return;
+ close_goto_next();
}
- close_goto_next();
}
void Zlint::recv_GDU(Z_GDU *gdu, int len)
return;
if (r == TEST_REOPEN)
{
- close();
client(m_host);
timeout(30);
return;
}
+ close_goto_next();
}
- close_goto_next();
}
void Zlint::close_goto_next()
{
- close();
if (m_cur_test)
m_cur_test = m_cur_test->m_next;
if (m_cur_test)
+ {
client(m_host);
- timeout(30);
+ timeout(30);
+ }
+ else
+ close();
}
IPDU_Observer *Zlint::sessionNotify(
Z_ReferenceId *Zlint::mk_refid(const char *buf, int len)
{
- Z_ReferenceId *id =
- (Z_ReferenceId *) odr_malloc(odr_encode(), sizeof(*id));
- id->size = id->len = len;
- id->buf = (unsigned char*) odr_malloc(odr_encode(), len);
- memcpy(id->buf, buf, len);
- return id;
+ return odr_create_Odr_oct(odr_encode(),
+#if YAZ_VERSIONL < 0x50000
+ (unsigned char *)
+#endif
+ buf, len);
}
int Zlint::initResponseGetVersion(Z_InitResponse *init)
{
int no = 0;
- int off = 0;
int i;
for (i = 0; i<12; i++)
if (ODR_MASK_GET(init->protocolVersion, no))
{
no = i+1;
}
- else
- off = 1;
return no;
}