The InspIRCd Project
Home | Developers | Wiki | Forums | Bug Tracker | SVN | Download
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

ModuleBanRedirect Class Reference

Inheritance diagram for ModuleBanRedirect:

Inheritance graph
[legend]
Collaboration diagram for ModuleBanRedirect:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ModuleBanRedirect (InspIRCd *Me)
virtual void OnChannelDelete (Channel *chan)
 Called whenever a channel is deleted, either by QUIT, KICK or PART.
virtual void OnCleanup (int target_type, void *item)
 Called before your module is unloaded to clean up Extensibles.
virtual void OnRehash (User *user, const std::string &param)
 Called on rehash.
virtual int OnUserPreJoin (User *user, Channel *chan, const char *cname, std::string &privs, const std::string &keygiven)
 Called whenever a user is about to join a channel, before any processing is done.
virtual ~ModuleBanRedirect ()
virtual Version GetVersion ()
 Returns the version number of a Module.
void Prioritize ()

Private Attributes

BanRedirectre
bool nofollow
ModuleExceptionModule

Detailed Description

Definition at line 187 of file m_banredirect.cpp.


Constructor & Destructor Documentation

ModuleBanRedirect::ModuleBanRedirect InspIRCd Me  )  [inline]
 

Definition at line 194 of file m_banredirect.cpp.

References ModeParser::AddModeWatcher(), ModuleManager::Attach(), I_OnChannelDelete, I_OnCleanup, I_OnRehash, I_OnUserPreJoin, InspIRCd::Modes, InspIRCd::Modules, nofollow, OnRehash(), re, and Module::ServerInstance.

virtual ModuleBanRedirect::~ModuleBanRedirect  )  [inline, virtual]
 

Definition at line 328 of file m_banredirect.cpp.

References ModeParser::DelModeWatcher(), InspIRCd::Modes, re, and Module::ServerInstance.


Member Function Documentation

virtual Version ModuleBanRedirect::GetVersion  )  [inline, virtual]
 

Returns the version number of a Module.

The method should return a Version object with its version information assigned via Version::Version

Reimplemented from Module.

Definition at line 334 of file m_banredirect.cpp.

References API_VERSION, VF_COMMON, and VF_VENDOR.

virtual void ModuleBanRedirect::OnChannelDelete Channel chan  )  [inline, virtual]
 

Called whenever a channel is deleted, either by QUIT, KICK or PART.

Parameters:
chan The channel being deleted

Reimplemented from Module.

Definition at line 213 of file m_banredirect.cpp.

References OnCleanup(), and TYPE_CHANNEL.

virtual void ModuleBanRedirect::OnCleanup int  target_type,
void *  item
[inline, virtual]
 

Called before your module is unloaded to clean up Extensibles.

This method is called once for every user and channel on the network, so that when your module unloads it may clear up any remaining data in the form of Extensibles added using Extensible::Extend(). If the target_type variable is TYPE_USER, then void* item refers to a User*, otherwise it refers to a Channel*.

Parameters:
target_type The type of item being cleaned
item A pointer to the item's class

Reimplemented from Module.

Definition at line 218 of file m_banredirect.cpp.

References Extensible::GetExt(), irc::modestacker::GetStackedLine(), Channel::name, irc::modestacker::Push(), irc::modestacker::PushPlus(), Module::ServerInstance, Extensible::Shrink(), and TYPE_CHANNEL.

Referenced by OnChannelDelete().

virtual void ModuleBanRedirect::OnRehash User user,
const std::string param
[inline, virtual]
 

Called on rehash.

This method is called prior to a /REHASH or when a SIGHUP is received from the operating system. You should use it to reload any files so that your module keeps in step with the rest of the application. If a parameter is given, the core has done nothing. The module receiving the event can decide if this parameter has any relevence to it.

Parameters:
user The user performing the rehash, if any -- if this is server initiated, the value of this variable will be NULL.
parameter The (optional) parameter given to REHASH from the user.

Reimplemented from Module.

Definition at line 259 of file m_banredirect.cpp.

References ExceptionModule, ModuleManager::Find(), InspIRCd::Modules, and Module::ServerInstance.

Referenced by ModuleBanRedirect().

virtual int ModuleBanRedirect::OnUserPreJoin User user,
Channel chan,
const char *  cname,
std::string privs,
const std::string keygiven
[inline, virtual]
 

Called whenever a user is about to join a channel, before any processing is done.

Returning a value of 1 from this function stops the process immediately, causing no output to be sent to the user by the core. If you do this you must produce your own numerics, notices etc. This is useful for modules which may want to mimic +b, +k, +l etc. Returning -1 from this function forces the join to be allowed, bypassing restrictions such as banlists, invite, keys etc.

IMPORTANT NOTE!

If the user joins a NEW channel which does not exist yet, OnUserPreJoin will be called BEFORE the channel record is created. This will cause Channel* chan to be NULL. There is very little you can do in form of processing on the actual channel record at this point, however the channel NAME will still be passed in char* cname, so that you could for example implement a channel blacklist or whitelist, etc.

Parameters:
user The user joining the channel
chan If the channel is a new channel, this will be NULL, otherwise it will be a pointer to the channel being joined
cname The channel name being joined. For new channels this is valid where chan is not.
privs A string containing the users privilages when joining the channel. For new channels this will contain "@". You may alter this string to alter the user's modes on the channel.
keygiven The key given to join the channel, or an empty string if none was provided
Returns:
1 To prevent the join, 0 to allow it.

Reimplemented from Module.

Definition at line 264 of file m_banredirect.cpp.

References ExceptionModule, ModuleManager::Find(), InspIRCd::FindChan(), Extensible::GetExt(), User::GetFullHost(), User::GetFullRealHost(), Channel::GetModeParameter(), Channel::GetUserCounter(), Channel::IsModeSet(), Channel::JoinUser(), User::MakeHostIP(), InspIRCd::Match(), InspIRCd::MatchCIDR(), InspIRCd::Modules, Channel::name, User::nick, nofollow, Request::Send(), Module::ServerInstance, InspIRCd::Time(), and User::WriteNumeric().

void ModuleBanRedirect::Prioritize  )  [inline, virtual]
 

Reimplemented from Module.

Definition at line 339 of file m_banredirect.cpp.

References ModuleManager::Find(), I_OnUserPreJoin, InspIRCd::Modules, PRIO_BEFORE, Module::ServerInstance, and ModuleManager::SetPriority().


Member Data Documentation

Module* ModuleBanRedirect::ExceptionModule [private]
 

Definition at line 191 of file m_banredirect.cpp.

Referenced by OnRehash(), and OnUserPreJoin().

bool ModuleBanRedirect::nofollow [private]
 

Definition at line 190 of file m_banredirect.cpp.

Referenced by ModuleBanRedirect(), and OnUserPreJoin().

BanRedirect* ModuleBanRedirect::re [private]
 

Definition at line 189 of file m_banredirect.cpp.

Referenced by ModuleBanRedirect(), and ~ModuleBanRedirect().


The documentation for this class was generated from the following file: