+ m_p->release_assoc(package);
+}
+
+void yf::Z3950Client::configure(const xmlNode *ptr, bool test_only)
+{
+ for (ptr = ptr->children; ptr; ptr = ptr->next)
+ {
+ if (ptr->type != XML_ELEMENT_NODE)
+ continue;
+ if (!strcmp((const char *) ptr->name, "timeout"))
+ {
+ m_p->m_timeout_sec = mp::xml::get_int(ptr->children, 30);
+ }
+ else if (!strcmp((const char *) ptr->name, "default_target"))
+ {
+ m_p->m_default_target = mp::xml::get_text(ptr);
+ }
+ else if (!strcmp((const char *) ptr->name, "force_target"))
+ {
+ m_p->m_force_target = mp::xml::get_text(ptr);
+ }
+ else if (!strcmp((const char *) ptr->name, "max-sockets"))
+ {
+ m_p->m_max_sockets = mp::xml::get_int(ptr->children, 0);
+ }
+ else
+ {
+ throw mp::filter::FilterException("Bad element "
+ + std::string((const char *)
+ ptr->name));
+ }
+ }
+}
+
+static mp::filter::Base* filter_creator()
+{
+ return new mp::filter::Z3950Client;