Return TypeFunction nameArguments
hzEcodehzDeltaClient::Connect(void)

Declared in file: hzDelta.h
Defined in file : hzDelta.cpp

Function Logic:

0:START 1:!m_AppDescFile 2:hzexit 3:ipa hzTcpClient::ConnectStd rc 4:rc!=E_OK 5:Return rc 6:getpid nProcID geteuid nUser getegid nGroup m_cvData m_cvData m_cvData m_cvData m_cvData hzString::Length len m_cvData m_cvData m_cvData m_cvData m_cvData m_cvData m_cvData m_cvData m_cvData m_cvData strcpy hzString::Length 7:m_Connection.Send(m_cvData,len)!=E_OK 8:Return E_SENDFAIL 9:m_Connection.Recv(m_cvData,len,HZ_MAXPACKET)!=E_OK 10:Return E_RECVFAIL 11:m_cvData[4]==DELTA_ACK 12:m_nSessID m_nSessID m_nSessID m_nSessID m_nSessID 13:Return E_OK 14:Return E_PROTOCOL

Function body:

hzEcode hzDeltaClient::Connect (void)
{
   _hzfunc("hzDeltaClient::Connect") ;
   hzIpaddr    ipa ;
   uint32_t    len ;
   uint32_t    nUser ;
   uint32_t    nGroup ;
   uint32_t    nProcID ;
   hzEcode     rc = E_OK ;
   if (!m_AppDescFile)
       hzexit(E_NOINIT, "No previous call to InitOnce") ;
   /*
   **  ** Connect to delta server and send
   **      */
   ipa = "127.0.0.1" ;
   rc = m_Connection.ConnectStd(ipa, s_deltaPort) ;
   if (rc != E_OK)
       return rc ;
   nProcID = getpid() ;
   nUser = geteuid() ;
   nGroup = getegid() ;
   m_cvData[0]= (nProcID & 0xff000000)>>24;
   m_cvData[1]= (nProcID & 0xff0000)>>16;
   m_cvData[2]= (nProcID & 0xff00)>>8;
   m_cvData[3]= (nProcID & 0xff);
   m_cvData[4]= DELTA_CLI_CONNECT ;
   len = 16+m_AppDescFile.Length() ;
   m_cvData[5]= (len & 0xff00)>>8;
   m_cvData[6]= (len & 0xff);
   m_cvData[7]= (nUser & 0xff000000)>>24;
   m_cvData[8]= (nUser & 0xff0000)>>16;
   m_cvData[9]= (nUser & 0xff00)>>8;
   m_cvData[10]=(nUser & 0xff);
   m_cvData[11]=(nGroup & 0xff000000)>>24;
   m_cvData[12]=(nGroup & 0xff0000)>>16;
   m_cvData[13]=(nGroup & 0xff00)>>8;
   m_cvData[14]=(nGroup & 0xff);
   strcpy(m_cvData + 15,*m_AppDescFile);
   threadLog("Sending app desc file %d %d bytes [%s]\n", m_AppDescFile.Length(), len, *m_AppDescFile) ;
   if (m_Connection.Send(m_cvData, len) != E_OK)
       return E_SENDFAIL ;
   if (m_Connection.Recv(m_cvData, len, HZ_MAXPACKET) != E_OK)
       return E_RECVFAIL ;
   if (m_cvData[4]== DELTA_ACK)
   {
       m_nSessID = 0;
       m_nSessID |= (m_cvData[0]<< 16);
       m_nSessID |= (m_cvData[1]<< 16);
       m_nSessID |= (m_cvData[2]<< 8);
       m_nSessID |= m_cvData[3];
       return E_OK ;
   }
   return E_PROTOCOL ;
}