| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | hzUdpClient::SendChain | (hzChain&,) |
Declared in file: hzUdpClient.h
Defined in file : hzUdpClient.cpp
Function Logic:
Function body:
hzEcode hzUdpClient::SendChain (hzChain& C)
{
_hzfunc("hzUdpClient::Send(hzChain&)") ;
chIter ci ;
char* i ;
uint32_t nSend ;
uint32_t nSofar ;
if (m_nSock == 0)
return E_NOSOCKET ;
if (!C.Size())
return E_NODATA ;
ci = C ;
nSofar = 0;
for (nSend = 0,i = m_pack.m_data ; !ci.eof() && nSend < HZ_MAXPACKET ; *i = *ci, i++, nSend++, ci++) ;
nSofar = nSend ;
if (sendto(m_nSock, m_pack.m_data, nSend, 0,(struct sockaddr*) &m_SvrAddr, m_SvrLen) < 0)
{
close(m_nSock) ;
m_nSock = 0;
hzerr(E_SENDFAIL, "Could not send to host (%s) on port %d", *m_Hostname, m_nPort) ;
return E_SENDFAIL ;
}
for (; nSofar < C.Size() ;)
{
for (nSend = 0,i = m_pack.m_data ; !ci.eof() && nSend < HZ_MAXPACKET ; *i = *ci, nSend++, i++, ci++) ;
nSofar += nSend ;
if (!nSend)
break ;
if (sendto(m_nSock, m_pack.m_data, nSend, 0,(struct sockaddr*) &m_SvrAddr, m_SvrLen) < 0)
{
close(m_nSock) ;
m_nSock = 0;
hzerr(E_SENDFAIL, "Could not send to host (%s) on port %d", *m_Hostname, m_nPort) ;
return E_SENDFAIL ;
}
}
return E_OK ;
}