projects
/
yazpp-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
proxy.sh start/stop script
[yazpp-moved-to-github.git]
/
src
/
yaz-pdu-assoc.cpp
diff --git
a/src/yaz-pdu-assoc.cpp
b/src/yaz-pdu-assoc.cpp
index
a7fc349
..
6ee18f6
100644
(file)
--- a/
src/yaz-pdu-assoc.cpp
+++ b/
src/yaz-pdu-assoc.cpp
@@
-1,8
+1,8
@@
/*
/*
- * Copyright (c) 1998-2001, Index Data.
+ * Copyright (c) 1998-2003, Index Data.
* See the file LICENSE for details.
*
* See the file LICENSE for details.
*
- * $Id: yaz-pdu-assoc.cpp,v 1.30 2003-10-01 13:13:51 adam Exp $
+ * $Id: yaz-pdu-assoc.cpp,v 1.36 2003-10-23 08:46:55 adam Exp $
*/
#include <assert.h>
*/
#include <assert.h>
@@
-20,6
+20,7
@@
void Yaz_PDU_Assoc::init(IYazSocketObservable *socketObservable)
m_socketObservable = socketObservable;
m_PDU_Observer = 0;
m_queue_out = 0;
m_socketObservable = socketObservable;
m_PDU_Observer = 0;
m_queue_out = 0;
+ m_queue_in = 0;
m_input_buf = 0;
m_input_len = 0;
m_children = 0;
m_input_buf = 0;
m_input_len = 0;
m_children = 0;
@@
-208,11
+209,18
@@
void Yaz_PDU_Assoc::socketNotify(int event)
if (!m_PDU_Observer)
return;
if (!m_PDU_Observer)
return;
-
+#if 0
+ PDU_Queue **pq = &m_queue_in;
+ while (*pq)
+ pq = &(*pq)->m_next;
+
+ *pq = new PDU_Queue(m_input_buf, res);
+#else
m_PDU_Observer->recv_PDU(m_input_buf, res);
m_PDU_Observer->recv_PDU(m_input_buf, res);
- m_destroyed = 0;
+#endif
if (destroyed) // it really was destroyed, return now.
return;
if (destroyed) // it really was destroyed, return now.
return;
+ m_destroyed = 0;
} while (m_cs && cs_more (m_cs));
if (m_cs && m_state == Ready)
{
} while (m_cs && cs_more (m_cs));
if (m_cs && m_state == Ready)
{
@@
-387,7
+395,7
@@
int Yaz_PDU_Assoc::send_PDU(const char *buf, int len)
COMSTACK Yaz_PDU_Assoc::comstack(const char *type_and_host, void **vp)
{
COMSTACK Yaz_PDU_Assoc::comstack(const char *type_and_host, void **vp)
{
- return cs_create_host(type_and_host, 0, vp);
+ return cs_create_host(type_and_host, 2, vp);
}
void Yaz_PDU_Assoc::listen(IYaz_PDU_Observer *observer,
}
void Yaz_PDU_Assoc::listen(IYaz_PDU_Observer *observer,
@@
-420,7
+428,7
@@
void Yaz_PDU_Assoc::idleTime(int idleTime)
m_socketObservable->timeoutObserver(this, m_idleTime);
}
m_socketObservable->timeoutObserver(this, m_idleTime);
}
-void Yaz_PDU_Assoc::connect(IYaz_PDU_Observer *observer,
+int Yaz_PDU_Assoc::connect(IYaz_PDU_Observer *observer,
const char *addr)
{
yaz_log (m_log, "Yaz_PDU_Assoc::connect %s", addr);
const char *addr)
{
yaz_log (m_log, "Yaz_PDU_Assoc::connect %s", addr);
@@
-428,6
+436,8
@@
void Yaz_PDU_Assoc::connect(IYaz_PDU_Observer *observer,
m_PDU_Observer = observer;
void *ap;
m_cs = comstack(addr, &ap);
m_PDU_Observer = observer;
void *ap;
m_cs = comstack(addr, &ap);
+ if (!m_cs)
+ return -1;
int res = cs_connect (m_cs, ap);
yaz_log (m_log, "Yaz_PDU_Assoc::connect fd=%d res=%d", cs_fileno(m_cs),
res);
int res = cs_connect (m_cs, ap);
yaz_log (m_log, "Yaz_PDU_Assoc::connect fd=%d res=%d", cs_fileno(m_cs),
res);
@@
-461,6
+471,7
@@
void Yaz_PDU_Assoc::connect(IYaz_PDU_Observer *observer,
m_socketObservable->maskObserver(this, YAZ_SOCKET_OBSERVE_WRITE|
YAZ_SOCKET_OBSERVE_EXCEPT);
}
m_socketObservable->maskObserver(this, YAZ_SOCKET_OBSERVE_WRITE|
YAZ_SOCKET_OBSERVE_EXCEPT);
}
+ return 0;
}
// Single-threaded... Only useful for non-blocking handlers
}
// Single-threaded... Only useful for non-blocking handlers