Csock* CRealListener::GetSockObj(const CString& sHost, unsigned short uPort) { CIncomingConnection *pClient = new CIncomingConnection(sHost, uPort, m_pParent->GetAcceptType()); if (CZNC::Get().AllowConnectionFrom(sHost)) { GLOBALMODULECALL(OnClientConnect(pClient, sHost, uPort), NULL, NULL, NOTHING); } else { pClient->Write(":irc.znc.in 464 unknown-nick :Too many anonymous connections from your IP\r\n"); pClient->Close(Csock::CLT_AFTERWRITE); GLOBALMODULECALL(OnFailedLogin("", sHost), NULL, NULL, NOTHING); } return pClient; }
void CModules::GetAvailableMods(set<CModInfo>& ssMods, bool bGlobal) { ssMods.clear(); unsigned int a = 0; CDir Dir; ModDirList dirs = GetModDirs(); while (!dirs.empty()) { Dir.FillByWildcard(dirs.front().first, "*" MODULE_FILE_EXT); dirs.pop(); for (a = 0; a < Dir.size(); a++) { CFile& File = *Dir[a]; CString sName = File.GetShortName(); CString sPath = File.GetLongName(); CModInfo ModInfo; sName.RightChomp(strlen(MODULE_FILE_EXT)); CString sIgnoreRetMsg; if (GetModPathInfo(ModInfo, sName, sPath, sIgnoreRetMsg)) { if (ModInfo.IsGlobal() == bGlobal) { ssMods.insert(ModInfo); } } } } GLOBALMODULECALL(OnGetAvailableMods(ssMods, bGlobal), NULL, NULL, NOTHING); }
void CModules::GetAvailableMods(set<CModInfo>& ssMods, CModInfo::EModuleType eType) { ssMods.clear(); unsigned int a = 0; CDir Dir; ModDirList dirs = GetModDirs(); while (!dirs.empty()) { Dir.FillByWildcard(dirs.front().first, "*.so"); dirs.pop(); for (a = 0; a < Dir.size(); a++) { CFile& File = *Dir[a]; CString sName = File.GetShortName(); CString sPath = File.GetLongName(); CModInfo ModInfo; sName.RightChomp(3); CString sIgnoreRetMsg; if (GetModPathInfo(ModInfo, sName, sPath, sIgnoreRetMsg)) { if (ModInfo.SupportsType(eType)) { ssMods.insert(ModInfo); } } } } GLOBALMODULECALL(OnGetAvailableMods(ssMods, eType), NOTHING); }
void NoAuthenticator::refuseLogin(const NoString& reason) { if (!d->socket) return; NoUser* user = noApp->findUser(d->username); // If the username is valid, notify that user that someone tried to // login. Use reason because there are other reasons than "wrong // password" for a login to be rejected (e.g. fail2ban). if (user) { user->putStatus("A client from [" + d->socket->remoteAddress() + "] attempted " "to login as you, but was rejected [" + reason + "]."); } GLOBALMODULECALL(onFailedLogin(d->username, d->socket->remoteAddress()), NOTHING); loginRefused(user, reason); invalidate(); }