X-Git-Url: http://git.indexdata.com/?p=yazpp-moved-to-github.git;a=blobdiff_plain;f=zlint%2Fzlint.cpp;h=7ed83b768346f729d9b4cd6354379ec196c36873;hp=028e6d65cda8b05c295a9a010df3d99494f04ab4;hb=HEAD;hpb=40213edfa0408f88b008c3d1ee4a4f90dcdf2fb9 diff --git a/zlint/zlint.cpp b/zlint/zlint.cpp index 028e6d6..7ed83b7 100644 --- a/zlint/zlint.cpp +++ b/zlint/zlint.cpp @@ -1,10 +1,11 @@ -/* - * Copyright (c) 2004, Index Data. +/* This file is part of the yazpp toolkit. + * Copyright (C) Index Data * See the file LICENSE for details. - * - * $Id: zlint.cpp,v 1.5 2004-03-25 23:14:07 adam Exp $ */ +#if HAVE_CONFIG_H +#include +#endif #include #include @@ -13,9 +14,15 @@ #include #include #include +#include #include +Zlint_test::~Zlint_test() +{ + +} + class Zlint_t { public: friend class Zlint; @@ -29,9 +36,9 @@ private: int m_test_reported; }; -Zlint::Zlint(IYaz_PDU_Observable *the_PDU_Observable) : - Yaz_Z_Assoc(the_PDU_Observable) - +Zlint::Zlint(IPDU_Observable *the_PDU_Observable) : + Z_Assoc(the_PDU_Observable) + { m_PDU_Observable = the_PDU_Observable; m_host = 0; @@ -44,9 +51,9 @@ Zlint::~Zlint() { while (m_tests) { - Zlint_t *t = m_tests; - m_tests = t->m_next; - delete t; + Zlint_t *t = m_tests; + m_tests = t->m_next; + delete t; } xfree(m_host); xfree(m_database); @@ -57,11 +64,12 @@ void Zlint::set_host(const char *cp) xfree(m_host); m_host = xstrdup(cp); client(m_host); + timeout(30); const char *basep; cs_get_host_args(m_host, &basep); if (!basep || !*basep) - basep = "Default"; + basep = "Default"; xfree(m_database); m_database = xstrdup(basep); } @@ -70,96 +78,94 @@ void Zlint::timeoutNotify() { if (m_cur_test) { - if (m_cur_test->m_t->recv_fail(this, 2) != TEST_FINISHED) - { - close(); - client(m_host); - return; - } + if (m_cur_test->m_t->recv_fail(this, 2) != TEST_FINISHED) + { + client(m_host); + timeout(30); + return; + } + close_goto_next(); } - close_goto_next(); } void Zlint::failNotify() { if (m_cur_test) { - if (m_cur_test->m_t->recv_fail(this, 1) != TEST_FINISHED) - { - close(); - client(m_host); - return; - } + if (m_cur_test->m_t->recv_fail(this, 1) != TEST_FINISHED) + { + client(m_host); + timeout(30); + return; + } + close_goto_next(); } - close_goto_next(); } void Zlint::connectNotify() { if (m_cur_test) { - if (m_cur_test->m_t->init(this) != TEST_FINISHED) - return; + 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) { if (m_cur_test) { - int r = m_cur_test->m_t->recv_gdu(this, gdu); - if (r == TEST_CONTINUE) - return; - if (r == TEST_REOPEN) - { - close(); - client(m_host); - return; - } + int r = m_cur_test->m_t->recv_gdu(this, gdu); + if (r == TEST_CONTINUE) + return; + if (r == TEST_REOPEN) + { + 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; + m_cur_test = m_cur_test->m_next; if (m_cur_test) - client(m_host); + { + client(m_host); + timeout(30); + } + else + close(); } -IYaz_PDU_Observer *Zlint::sessionNotify( - IYaz_PDU_Observable *the_PDU_Observable, int fd) +IPDU_Observer *Zlint::sessionNotify( + IPDU_Observable *the_PDU_Observable, int fd) { return 0; } 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; - if (off) - yaz_log(LOG_WARN, "%sbad formatted version"); - } - else - off = 1; + if (ODR_MASK_GET(init->protocolVersion, no)) + { + no = i+1; + } return no; } @@ -167,10 +173,10 @@ void Zlint::add_test(Zlint_test *t) { Zlint_t **d = &m_tests; while (*d) - d = &(*d)->m_next; + d = &(*d)->m_next; *d = new Zlint_t(t); if (!m_cur_test) - m_cur_test = m_tests; + m_cur_test = m_tests; } void Zlint::msg_check_for(const char *fmt, ...) @@ -201,9 +207,9 @@ void Zlint::msg_check_ok() { if (!m_cur_test->m_test_reported) { - m_cur_test->m_test_ok = 1; - m_cur_test->m_test_reported = 1; - printf ("OK\n"); + m_cur_test->m_test_ok = 1; + m_cur_test->m_test_reported = 1; + printf ("OK\n"); } } @@ -211,9 +217,9 @@ void Zlint::msg_check_fail(const char *fmt, ...) { if (!m_cur_test->m_test_reported) { - m_cur_test->m_test_ok = 0; - m_cur_test->m_test_reported = 1; - printf ("Fail\n"); + m_cur_test->m_test_ok = 0; + m_cur_test->m_test_reported = 1; + printf ("Fail\n"); } va_list ap; va_start(ap, fmt); @@ -227,9 +233,9 @@ void Zlint::msg_check_notapp() { if (!m_cur_test->m_test_reported) { - m_cur_test->m_test_ok = 2; - m_cur_test->m_test_reported = 1; - printf ("Unsupported\n"); + m_cur_test->m_test_ok = 2; + m_cur_test->m_test_reported = 1; + printf ("Unsupported\n"); } } @@ -260,3 +266,12 @@ Zlint_code Zlint_test_simple::recv_fail(Zlint *z, int reason) z->msg_check_fail("target closed connection"); return TEST_FINISHED; } +/* + * Local variables: + * c-basic-offset: 4 + * c-file-style: "Stroustrup" + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +