Load user groups Arguments: None

Return TypeFunction nameArguments
hzEcodehzGroupinfo::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:pGI 9:unknown 10:items 11:i 12:unknown 13:* 14:unknown 15:* pGI pGI items 16:items 17:Return E_OK

Function body:

hzEcode hzGroupinfo::Load (void)
{
   //  Load user groups
   //  
   //  Arguments: None
   //  
   //  Returns: E_OPENFAIL If the file /etc/group could not be opened
   //     E_OK  If the user groups have been read in
   _hzfunc("hzGroupinfo::Load") ;
   std::ifstream   is ;        //  Input stream
   hzGroupinfo*    pGI ;       //  UNIX group pointer
   char*   i ;                 //  Line buffer iterator
   char*   cpGroupname ;       //  User group partial string
   char*   cpGroupID ;         //  User group partial string
   char    cvLine[256];    //  Line buffer
   is.open("/etc/group") ;
   if (is.fail())
   {
       hzerr(E_OPENFAIL, "Could not open group file") ;
       return E_OPENFAIL ;
   }
   for (;;)
   {
       is.getline(cvLine, 256);
       if (!is.gcount())
           break ;
       pGI = new hzGroupinfo() ;
       if (!pGI)
           hzexit(E_MEMORY, "No memory for system user DB") ;
       i = cvLine ;
       for (cpGroupname = i ; *i && *i != '':'';i++) ; *i++ = 0;
       for (cpGroupID = i ;  *i && *i != '':'';i++) ;  *i++ = 0;
       pGI->m_Groupname = cpGroupname ;
       pGI->m_nGroupID = atoi(cpGroupID) ;
       _hzGlobal_Grouplist.Insert(pGI->m_Groupname, pGI) ;
   }
   is.close() ;
   return E_OK ;
}