char *read_inet_addr(char *pszInternetEmailAddress, int nUserNumber) { if (!nUserNumber) { return NULL; } if (nUserNumber == GetSession()->usernum && check_inet_addr(GetSession()->GetCurrentUser()->GetEmailAddress())) { strcpy(pszInternetEmailAddress, GetSession()->GetCurrentUser()->GetEmailAddress()); } else { //pszInternetEmailAddress = NULL; *pszInternetEmailAddress = 0; WFile inetAddrFile(syscfg.datadir, INETADDR_DAT); if (!inetAddrFile.Exists()) { inetAddrFile.Open(WFile::modeReadWrite | WFile::modeBinary | WFile::modeCreateFile, WFile::shareUnknown, WFile::permReadWrite); for (int i = 0; i <= syscfg.maxusers; i++) { long lCurPos = 80L * static_cast<long>(i); inetAddrFile.Seek(lCurPos, WFile::seekBegin); inetAddrFile.Write(pszInternetEmailAddress, 80L); } } else { char szUserName[ 255 ]; inetAddrFile.Open(WFile::modeReadOnly | WFile::modeBinary); long lCurPos = 80L * static_cast<long>(nUserNumber); inetAddrFile.Seek(lCurPos, WFile::seekBegin); inetAddrFile.Read(szUserName, 80L); if (check_inet_addr(szUserName)) { strcpy(pszInternetEmailAddress, szUserName); } else { sprintf(pszInternetEmailAddress, "User #%d", nUserNumber); WUser user; GetApplication()->GetUserManager()->ReadUser(&user, nUserNumber); user.SetEmailAddress(""); GetApplication()->GetUserManager()->WriteUser(&user, nUserNumber); } } inetAddrFile.Close(); } return pszInternetEmailAddress; }