X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fyaz-pdu-assoc.cpp;h=c6b166875a2b75cddc17b94d5db3886f35fe23d7;hb=cf75ac8890f84648d5960d4b07fea7aab9a6eff1;hp=bcdededb71af498acfdd66aeb1ec3ac44f04dfc0;hpb=36e5968d005bb3cdc7b045bfccfe1a6aabb4c54e;p=yazpp-moved-to-github.git diff --git a/src/yaz-pdu-assoc.cpp b/src/yaz-pdu-assoc.cpp index bcdeded..c6b1668 100644 --- a/src/yaz-pdu-assoc.cpp +++ b/src/yaz-pdu-assoc.cpp @@ -2,7 +2,7 @@ * Copyright (c) 1998-2001, Index Data. * See the file LICENSE for details. * - * $Id: yaz-pdu-assoc.cpp,v 1.29 2003-07-25 19:27:36 adam Exp $ + * $Id: yaz-pdu-assoc.cpp,v 1.31 2003-10-09 12:11:10 adam Exp $ */ #include @@ -387,7 +387,7 @@ int Yaz_PDU_Assoc::send_PDU(const char *buf, int len) 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, @@ -433,8 +433,17 @@ void Yaz_PDU_Assoc::connect(IYaz_PDU_Observer *observer, res); m_socketObservable->addObserver(cs_fileno(m_cs), this); - if (res >= 0) - { // Connect pending or complete + if (res == 0) + { // Connect complete + m_state = Connecting; + unsigned mask = YAZ_SOCKET_OBSERVE_EXCEPT; + mask |= YAZ_SOCKET_OBSERVE_WRITE; + mask |= YAZ_SOCKET_OBSERVE_READ; + yaz_log(m_log, "maskObserver 11"); + m_socketObservable->maskObserver(this, mask); + } + else if (res > 0) + { // Connect pending m_state = Connecting; unsigned mask = YAZ_SOCKET_OBSERVE_EXCEPT; if (m_cs->io_pending & CS_WANT_WRITE) @@ -468,3 +477,8 @@ void Yaz_PDU_Assoc::childNotify(COMSTACK cs) new_observable->m_PDU_Observer = m_PDU_Observer->sessionNotify (new_observable, cs_fileno(cs)); } + +const char*Yaz_PDU_Assoc::getpeername() +{ + return cs_addrstr(m_cs); +}