typedef uint32_t word32; /* NOT unsigned long. We don't support 16 bit platforms, anyway. */
typedef unsigned char byte;
+/** An MD5 context, used by m_cloaking
+ */
class xMD5Context : public classbase
{
public:
word32 in[16];
};
+/** Handles user mode +x
+ */
class CloakUser : public ModeHandler
{
// else, they have an ip
b = std::string(ra) + "." + prefix + ".cloak";
}
- log(DEBUG,"cloak: allocated "+b);
+ ServerInstance->Log(DEBUG,"cloak: allocated "+b);
dest->ChangeDisplayedHost(b.c_str());
}
virtual ~ModuleCloaking()
{
+ ServerInstance->Modes->DelMode(cu);
DELETE(cu);
}
{
// returns the version number of the module to be
// listed in /MODULES
- return Version(1,0,0,2,VF_STATIC|VF_VENDOR);
+ return Version(1,0,0,2,VF_COMMON|VF_VENDOR);
}
virtual void OnRehash(const std::string ¶meter)
void Implements(char* List)
{
- List[I_OnRehash] = List[I_OnUserConnect] = 1;
+ List[I_OnRehash] = 1;
}
-
- virtual void OnUserConnect(userrec* user)
- {
- // Heres the weird bit. When a user connects we must set +x on them, so
- // we're going to use the SendMode method of the Server class to send
- // the mode to the client. This is basically the same as sending an
- // SAMODE in unreal. Note that to the user it will appear as if they set
- // the mode on themselves.
-
- const char* modes[2]; // only two parameters
- modes[0] = user->nick; // first parameter is the nick
- modes[1] = "+x"; // second parameter is the mode
- ServerInstance->SendMode(modes,2,user); // send these, forming the command "MODE <nick> +x"
- }
-
};
// stuff down here is the module-factory stuff. For basic modules you can ignore this.