| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | hzIpConnex::SendData | (const hzChain&,const hzChain&,) |
Declared in file: hzIpServer.h
Defined in file : hzIpServer.cpp
Function Logic:
Function body:
hzEcode hzIpConnex::SendData (const hzChain& Hdr, const hzChain& Body)
{
_hzfunc("hzIpConnex::SendData(1)") ;
struct epoll_event epEventNew ;
if (!Hdr.Size() && !Body.Size())
{
m_pLog->Log("No data queued for output\n") ;
return E_NODATA ;
}
if (Hdr.Size() && Body.Size())
{
m_Outgoing.Push(Hdr) ;
m_Outgoing.Push(Body) ;
}
m_nTotalOut = Hdr.Size() + Body.Size() ;
m_nsSendBeg = RealtimeNano() ;
epEventNew.data.fd = m_nSock ;
epEventNew.events = EPOLLIN | EPOLLOUT | EPOLLET ;
if (epoll_ctl(s_pTheOneAndOnlyServer->s_epollSocket, EPOLL_CTL_MOD, m_nSock, &epEventNew) < 0)
{
m_pLog->Log("EPOLL ERROR: Could not add client connection write handler on sock %d/%d. Error=%s\n", m_nSock, m_nPort, strerror(errno)) ;
if (close(m_nSock) < 0)
m_pLog->Log("NOTE: Could not close socket %d after epoll error. errno=%d\n", m_nSock, errno) ;
}
return E_OK ;
}