Return TypeFunction nameArguments
hzEcodeInitIpInfo(const hzString&,)

Declared in file: hzIpaddr.h
Defined in file : hzIpServer.cpp

Function Logic:

0:START 1:!dataDir 2:Return E_ARGUMENT 3:AssertDir rc 4:rc!=E_OK 5:Return rc 6:s_status_ip_fname TestFile rc 7:rc==E_OK 8:open ifstream::fail 9:is.fail() 10:Return hzerr(E_OPENFAIL,Cannot open file %s\n,*s_status_ip_fname) 11:; 12:ifstream::getline ifstream::gcount 13:!is.gcount() 14:ipa 15:!ipa 16:Return hzerr(E_FORMAT,Line %d of file %s, is not a valid IP address,nLine,*s_status_ip_fname) 17:hzMapS::Insert 18:close ifstream::clear hzMapS::Count 19:rc!=E_NOTFOUND&&rc!=E_NODATA 20:Return hzerr(rc,File error %s\n,*s_status_ip_fname) 21:rc ofstream::open ofstream::fail 22:s_status_ip_os.fail() 23:Return hzerr(E_OPENFAIL,Cannot open %s for writing,*s_status_ip_fname) 24:Return rc

Function body:

hzEcode InitIpInfo (const hzString& dataDir)
{
   _hzfunc(__func__) ;
   ifstream    is ;
   hzIpinfo    ipi ;
   hzIpaddr    ipa ;
   uint32_t    nLine ;
   char        buf [24];
   hzEcode     rc = E_OK ;
   if (!dataDir)
       return E_ARGUMENT ;
   rc = AssertDir(dataDir, 0666);
   if (rc != E_OK)
       return rc ;
   s_status_ip_fname = dataDir + "/status_ip.ips" ;
   rc = TestFile(s_status_ip_fname) ;
   if (rc == E_OK)
   {
       is.open(*s_status_ip_fname) ;
       if (is.fail())
           return hzerr(E_OPENFAIL, "Cannot open file %s\n", *s_status_ip_fname) ;
       for (nLine = 1;; nLine++)
       {
           is.getline(buf, 23);
           if (!is.gcount())
               break ;
           ipa = buf ;
           if (!ipa)
               return hzerr(E_FORMAT, "Line %d of file %s, is not a valid IP address", nLine, *s_status_ip_fname) ;
           _hzGlobal_StatusIP.Insert(ipa, ipi) ;
       }
       is.close() ;
       is.clear() ;
       threadLog("Loaded %d IP address in WHITELIST\n", _hzGlobal_StatusIP.Count()) ;
   }
   else
   {
       if (rc != E_NOTFOUND && rc != E_NODATA)
           return hzerr(rc, "File error %s\n", *s_status_ip_fname) ;
   }
   rc = E_OK ;
   s_status_ip_os.open(*s_status_ip_fname, ios::app) ;
   if (s_status_ip_os.fail())
       return hzerr(E_OPENFAIL, "Cannot open %s for writing", *s_status_ip_fname) ;
   return rc ;
}