*/
void PurgeEmptyChannels();
- /** Get the connect class which this user belongs to. NULL for remote users.
- * @return A pointer to this user's connect class.
- */
- virtual ConnectClass* GetClass();
-
/** Default destructor
*/
virtual ~User();
*/
reference<ConnectClass> MyClass;
- ConnectClass* GetClass();
+ /** Get the connect class which this user belongs to.
+ * @return A pointer to this user's connect class.
+ */
+ ConnectClass* GetClass() const { return MyClass; }
/** Call this method to find the matching \<connect> for a user, and to check them against it.
*/
return CMD_SUCCESS;
ConfigTag* tag = NULL;
- if (IS_LOCAL(user))
- tag = user->GetClass()->config;
+ LocalUser* localuser = IS_LOCAL(user);
+ if (localuser)
+ tag = localuser->GetClass()->config;
std::string motd_name = tag->getString("motd", "motd");
ConfigFileCache::iterator motd = ServerInstance->Config->Files.find(motd_name);
if (motd == ServerInstance->Config->Files.end())
return CMD_SUCCESS;
ConfigTag* tag = NULL;
- if (IS_LOCAL(user))
- tag = user->GetClass()->config;
+ LocalUser* localuser = IS_LOCAL(user);
+ if (localuser)
+ tag = localuser->GetClass()->config;
std::string rules_name = tag->getString("rules", "rules");
ConfigFileCache::iterator rules = ServerInstance->Config->Files.find(rules_name);
if (rules == ServerInstance->Config->Files.end())
}
}
-/* looks up a users password for their connection class (<ALLOW>/<DENY> tags)
- * NOTE: If the <ALLOW> or <DENY> tag specifies an ip, and this user resolves,
- * then their ip will be taken as 'priority' anyway, so for example,
- * <connect allow="127.0.0.1"> will match joe!bloggs@localhost
- */
-ConnectClass* LocalUser::GetClass()
-{
- return MyClass;
-}
-
-ConnectClass* User::GetClass()
-{
- return NULL;
-}
-
void User::PurgeEmptyChannels()
{
// firstly decrement the count on each channel