stuff in other-information unit.
-/* $Id: filter_multi.cpp,v 1.7 2006-01-18 09:20:30 adam Exp $
+/* $Id: filter_multi.cpp,v 1.8 2006-01-18 10:57:27 adam Exp $
Copyright (c) 2005, Index Data.
%LICENSE%
BackendPtr b = *bit;
Z_APDU *init_apdu = zget_APDU(odr, Z_APDU_initRequest);
- yaz_oi_set_string_oidval(&init_apdu->u.initRequest->otherInfo, odr,
- VAL_PROXY, 1, b->m_vhost.c_str());
-
+ std::list<std::string>vhost_one;
+ vhost_one.push_back(b->m_vhost);
+ yp2::util::set_vhost_otherinfo(&init_apdu->u.initRequest->otherInfo,
+ odr, vhost_one);
+
Z_InitRequest *req = init_apdu->u.initRequest;
ODR_MASK_SET(req->options, Z_Options_search);
-/* $Id: filter_virt_db.cpp,v 1.32 2006-01-18 10:30:28 adam Exp $
+/* $Id: filter_virt_db.cpp,v 1.33 2006-01-18 10:57:27 adam Exp $
Copyright (c) 2005, Index Data.
%LICENSE%
Z_APDU *init_apdu = zget_APDU(odr, Z_APDU_initRequest);
- std::list<std::string>::const_iterator t_it = b->m_targets.begin();
- int cat = 1;
- for (; t_it != b->m_targets.end(); t_it++, cat++)
- {
- yaz_oi_set_string_oidval(&init_apdu->u.initRequest->otherInfo, odr,
- VAL_PROXY, cat, t_it->c_str());
- }
-
+ yp2::util::set_vhost_otherinfo(&init_apdu->u.initRequest->otherInfo, odr,
+ b->m_targets);
Z_InitRequest *req = init_apdu->u.initRequest;
// copy stuff from Frontend Init Request
{
Z_InitRequest *req = gdu->u.z3950->u.initRequest;
- const char *vhost =
- yaz_oi_get_string_oidval(&req->otherInfo, VAL_PROXY, 1, 0);
- if (!vhost)
+ std::list<std::string> vhosts;
+ yp2::util::get_vhost_otherinfo(&req->otherInfo, false, vhosts);
+ if (vhosts.size() == 0)
{
f->m_init_gdu = gdu;
-/* $Id: util.cpp,v 1.9 2006-01-17 17:55:40 adam Exp $
+/* $Id: util.cpp,v 1.10 2006-01-18 10:57:27 adam Exp $
Copyright (c) 2005, Index Data.
%LICENSE%
return cat;
}
+void yp2::util::set_vhost_otherinfo(Z_OtherInformation **otherInformation,
+ ODR odr,
+ const std::list<std::string> &vhosts)
+{
+ int cat;
+ std::list<std::string>::const_iterator it = vhosts.begin();
+ for (cat = 1; it != vhosts.end() ; cat++, it++)
+ {
+ yaz_oi_set_string_oidval(otherInformation, odr,
+ VAL_PROXY, cat, it->c_str());
+ }
+}
+
void yp2::util::split_zurl(std::string zurl, std::string &host,
std::list<std::string> &db)
{
-/* $Id: util.hpp,v 1.8 2006-01-17 17:55:40 adam Exp $
+/* $Id: util.hpp,v 1.9 2006-01-18 10:57:27 adam Exp $
Copyright (c) 2005, Index Data.
%LICENSE%
int get_vhost_otherinfo(Z_OtherInformation **otherInformation,
bool remove_flag,
std::list<std::string> &vhosts);
+ void set_vhost_otherinfo(Z_OtherInformation **otherInformation,
+ ODR odr,
+ const std::list<std::string> &vhosts);
void get_init_diagnostics(Z_InitResponse *res,
int &error_code, std::string &addinfo);
void get_default_diag(Z_DefaultDiagFormat *r,