-/* $Id: filter_backend_test.cpp,v 1.7 2005-10-30 17:13:36 adam Exp $
+/* $Id: filter_backend_test.cpp,v 1.8 2005-10-30 18:51:20 adam Exp $
Copyright (c) 2005, Index Data.
%LICENSE%
if (apdu_req->which != Z_APDU_initRequest &&
!m_p->m_sessions.exist(package.session()))
{
- apdu_res = zget_APDU(odr, Z_APDU_close);
- *apdu_res->u.close->closeReason = Z_Close_protocolError;
- apdu_res->u.close->diagnosticInformation =
- odr_strdup(odr, "no init for filter_backend_test");
-
+ apdu_res = odr.create_close(Z_Close_protocolError,
+ "no init for filter_backend_test");
package.session().close();
}
else if (apdu_req->which == Z_APDU_initRequest)
}
else
{
- apdu_res = zget_APDU(odr, Z_APDU_close);
- *apdu_res->u.close->closeReason = Z_Close_protocolError;
- apdu_res->u.close->diagnosticInformation =
- odr_strdup(odr, "bad APDU in filter_backend_test");
-
+ apdu_res = odr.create_close(Z_Close_protocolError,
+ "bad APDU in filter_backend_test");
package.session().close();
}
if (apdu_res)
-/* $Id: filter_virt_db.cpp,v 1.11 2005-10-30 17:13:36 adam Exp $
+/* $Id: filter_virt_db.cpp,v 1.12 2005-10-30 18:51:20 adam Exp $
Copyright (c) 2005, Index Data.
%LICENSE%
Ses_it it = m_sessions.find(package.session());
if (it == m_sessions.end())
{
- Z_APDU *apdu = zget_APDU(odr, Z_APDU_close);
-
- *apdu->u.close->closeReason = Z_Close_protocolError;
- apdu->u.close->diagnosticInformation =
- odr_strdup(odr, "no session for present request");
-
- package.response() = apdu;
+ package.response() = odr.create_close(
+ Z_Close_protocolError,
+ "no session for present request");
package.session().close();
-
return;
}
if (it->second.m_use_vhost)
Ses_it it = m_sessions.find(package.session());
if (it == m_sessions.end())
{
- Z_APDU *apdu = zget_APDU(odr, Z_APDU_close);
-
- *apdu->u.close->closeReason = Z_Close_protocolError;
- apdu->u.close->diagnosticInformation =
- odr_strdup(odr, "no session for search request");
-
- package.response() = apdu;
+ package.response() = odr.create_close(
+ Z_Close_protocolError,
+ "no session for search request");
package.session().close();
return;
{
yp2::odr odr;
- Z_APDU *apdu = zget_APDU(odr, Z_APDU_close);
-
- *apdu->u.close->closeReason = Z_Close_protocolError;
-
- apdu->u.close->diagnosticInformation =
- odr_strdup(odr, "unsupported APDU in filter_virt_db");
-
- package.response() = apdu;
+ package.response() = odr.create_close(
+ Z_Close_protocolError,
+ "unsupported APDU in filter_virt_db");
+
package.session().close();
}
if (move_later)
-/* $Id: filter_z3950_client.cpp,v 1.8 2005-10-30 17:13:36 adam Exp $
+/* $Id: filter_z3950_client.cpp,v 1.9 2005-10-30 18:51:21 adam Exp $
Copyright (c) 2005, Index Data.
%LICENSE%
yp2::odr odr;
- Z_APDU *apdu = zget_APDU(odr, Z_APDU_close);
-
- *apdu->u.close->closeReason = Z_Close_peerAbort;
-
if (m_package)
{
- m_package->response() = apdu;
+ m_package->response() = odr.create_close(Z_Close_peerAbort, 0);
m_package->session().close();
}
}
yp2::odr odr;
- Z_APDU *apdu = zget_APDU(odr, Z_APDU_close);
-
- *apdu->u.close->closeReason = Z_Close_lackOfActivity;
-
if (m_package)
{
- m_package->response() = apdu;
+ m_package->response() = odr.create_close(Z_Close_lackOfActivity, 0);
m_package->session().close();
}
}
if (apdu->which != Z_APDU_initRequest)
{
yp2::odr odr;
- Z_APDU *apdu = zget_APDU(odr, Z_APDU_close);
-
- *apdu->u.close->closeReason = Z_Close_protocolError;
- apdu->u.close->diagnosticInformation =
- odr_strdup(odr, "no init request for session");
-
- package.response() = apdu;
+ package.response() = odr.create_close(Z_Close_protocolError,
+ "no init request for session");
package.session().close();
return 0;
}
if (!vhost)
{
yp2::odr odr;
- Z_APDU *apdu = zget_APDU(odr, Z_APDU_initResponse);
+ package.response() = odr.create_initResponse(
+ YAZ_BIB1_INIT_NEGOTIATION_OPTION_REQUIRED,
+ "Virtual host not given");
- apdu->u.initResponse->userInformationField =
- zget_init_diagnostics(odr,
- YAZ_BIB1_INIT_NEGOTIATION_OPTION_REQUIRED,
- "Virtual host not given");
- package.response() = apdu;
-
package.session().close();
return 0;
}
-/* $Id: util.cpp,v 1.2 2005-10-30 17:13:36 adam Exp $
+/* $Id: util.cpp,v 1.3 2005-10-30 18:51:21 adam Exp $
Copyright (c) 2005, Index Data.
%LICENSE%
return m_odr;
}
+Z_APDU *yp2::odr::create_close(int reason, const char *addinfo)
+{
+ Z_APDU *apdu = zget_APDU(m_odr, Z_APDU_close);
+
+ *apdu->u.close->closeReason = reason;
+ if (addinfo)
+ apdu->u.close->diagnosticInformation = odr_strdup(m_odr, addinfo);
+ return apdu;
+}
+
+Z_APDU *yp2::odr::create_initResponse(int error, const char *addinfo)
+{
+ Z_APDU *apdu = zget_APDU(m_odr, Z_APDU_initResponse);
+ if (error)
+ {
+ apdu->u.initResponse->userInformationField =
+ zget_init_diagnostics(m_odr, error, addinfo);
+ *apdu->u.initResponse->result = 0;
+ }
+ return apdu;
+}
+
/*
* Local variables:
* c-basic-offset: 4
-/* $Id: util.hpp,v 1.2 2005-10-30 17:13:36 adam Exp $
+/* $Id: util.hpp,v 1.3 2005-10-30 18:51:21 adam Exp $
Copyright (c) 2005, Index Data.
%LICENSE%
odr();
~odr();
operator ODR() const;
+ Z_APDU *create_close(int reason, const char *addinfo);
+ Z_APDU *create_initResponse(int error, const char *addinfo);
private:
ODR m_odr;
};