Build system user information database form /etc/passwd .

Return TypeFunction nameArguments
hzEcodehzUserinfo::Load(void)

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

Function Logic:

0:START 1:items 2:unknown 3:items 4:Return E_OPENFAIL 5:unknown 6:items 7:unknown 8:i pUI 9:unknown 10:items 11:unknown 12:* pUI 13:unknown 14:* 15:unknown 16:* pUI 17:unknown 18:* pUI 19:unknown 20:* pUI 21:unknown 22:* pUI 23:unknown 24:* pUI items 25:items items 26:Return E_OK

Function body:

hzEcode hzUserinfo::Load (void)
{
   //  Build system user information database form /etc/passwd
   //  
   //  Arguments: None.
   //  
   //  Returns: E_OPENFAIL If the file /etc/passwd could not be opened for reading.
   //     E_OK  If the /etc/passwd file was read.
   _hzfunc("hzUserinfo::Load") ;
   std::ifstream   is ;        //  Input stream
   hzUserinfo* pUI ;           //  Unix user meta data
   char*       i ;             //  String iterator
   char*       j ;             //  Reference iterator
   char        cvLine[256];//  Getline Buffer
   is.open("/etc/passwd") ;
   if (is.fail())
   {
       hzerr(E_OPENFAIL, "Could not open passwd file") ;
       return E_OPENFAIL ;
   }
   for (;;)
   {
       is.getline(cvLine, 256);
       if (!is.gcount())
           break ;
       i = cvLine ;
       pUI = new hzUserinfo() ;
       if (!pUI)
           hzexit(E_MEMORY, "No memory for system user DB") ;
       for (j = i ; *i && *i != '':'';i++) ;   *i++ = 0; pUI->m_Username = j ;
       for (j = i ; *i && *i != '':'';i++) ;   *i++ = 0;
       for (j = i ; *i && *i != '':'';i++) ;   *i++ = 0; pUI->m_nUserID = atoi(j) ;
       for (j = i ; *i && *i != '':'';i++) ;   *i++ = 0; pUI->m_nGroupID = atoi(j) ;
       for (j = i ; *i && *i != '':'';i++) ;   *i++ = 0; pUI->m_Geninfo = j ;
       for (j = i ; *i && *i != '':'';i++) ;   *i++ = 0; pUI->m_Homedir = j ;
       for (j = i ; *i && *i != '':'';i++) ;   *i++ = 0; pUI->m_Shell = j ;
       _hzGlobal_Userlist.Insert(pUI->m_Username, pUI) ;
   }
   is.close() ;
   is.clear() ;
   return E_OK ;
}