user *CMac::FindUser(CString sUsername) { if(!sUsername.CStr()) return NULL; list<user*>::iterator iu; for(iu=luStart.begin(); iu!=luStart.end(); ++iu) { user *pUser=(*iu); login *pLogin=FindLogin(sUsername); if(pLogin) pUser=pLogin->pUser; if(!pUser->sUsername.Compare(sUsername) || pLogin) return pUser; } return NULL; }
bool CMac::AddLogin(CString sUsername, CString sPassword, CString sIRCUsername, CString sHost, CString sIdentd) { if(FindLogin(sIRCUsername)) return false; user *pUser=FindUser(sUsername); if(!pUser) return false; if(pUser) if(CheckPassword(sPassword, pUser)) { if(pUser->sHost.Compare("")) if(!strstr(sHost.CStr(), pUser->sHost.CStr())) return false; login *pLogin=new login; pLogin->pUser=pUser; pLogin->sUsername=sUsername; pLogin->sIRCUsername=sIRCUsername; llStart.push_back(pLogin); return true; } return false; }