* Copyright (c) 1998-2004, Index Data.
* See the file LICENSE for details.
*
- * $Id: proxy.h,v 1.33 2004-01-09 18:11:15 adam Exp $
+ * $Id: proxy.h,v 1.34 2004-01-14 12:14:13 adam Exp $
*/
#include <sys/time.h>
void failNotify();
void timeoutNotify();
void connectNotify();
+ void markInvalid();
const char *option(const char *name, const char *value);
void set_default_target(const char *target);
void set_proxy_authentication (const char *auth);
* Copyright (c) 1998-2004, Index Data.
* See the file LICENSE for details.
*
- * $Id: yaz-proxy.cpp,v 1.88 2004-01-12 22:35:59 adam Exp $
+ * $Id: yaz-proxy.cpp,v 1.89 2004-01-14 12:14:13 adam Exp $
*/
#include <assert.h>
{
send_to_srw_client_ok(0, res->records, 1);
}
- else if (m_s2z_present_apdu)
+ else if (m_s2z_present_apdu && m_s2z_hit_count > 0)
{
// adjust
Z_PresentRequest *pr = m_s2z_present_apdu->u.presentRequest;
}
else
{
+ m_s2z_present_apdu = 0;
send_to_srw_client_ok(m_s2z_hit_count, res->records, 1);
}
}
}
}
+void Yaz_Proxy::markInvalid()
+{
+ m_client = 0;
+ m_invalid_session = 1;
+}
+
void Yaz_ProxyClient::timeoutNotify()
{
if (m_server)
get_hostname());
m_waiting = 1;
m_root->pre_init();
+ if (m_server && m_init_flag)
+ {
+ // target timed out in a session that was properly initialized
+ // server object stay alive but we mark it as invalid so it
+ // gets initialized again
+ m_server->markInvalid();
+ m_server = 0;
+ }
shutdown();
}