From 73b9d0c5cb02f0ea8350de28bc3687e0af70ea0f Mon Sep 17 00:00:00 2001 From: brain Date: Thu, 23 Jan 2003 19:45:57 +0000 Subject: Initial revision git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@132 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_cloaking.cpp | 73 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 src/modules/m_cloaking.cpp (limited to 'src/modules/m_cloaking.cpp') diff --git a/src/modules/m_cloaking.cpp b/src/modules/m_cloaking.cpp new file mode 100644 index 000000000..91ab49054 --- /dev/null +++ b/src/modules/m_cloaking.cpp @@ -0,0 +1,73 @@ +#include + +#include "users.h" +#include "channels.h" +#include "modules.h" + +/* $ModDesc: Provides masking of user hostnames */ + +class ModuleCloaking : public Module +{ + private: + + Server *Srv; + + public: + ModuleCloaking() + { + Srv = new Server; + } + + virtual ~ModuleCloaking() + { + delete Srv; + } + + virtual Version GetVersion() + { + return Version(1,0,0,0); + } + + virtual void OnUserConnect(userrec* user) + { + if (strstr(user->dhost,".")) + { + string a = strstr(user->dhost,"."); + char ra[64]; + long seed,s2; + memcpy(&seed,user->dhost,sizeof(long)); + memcpy(&s2,a.c_str(),sizeof(long)); + sprintf(ra,"%.8X",seed*s2*strlen(user->host)); + string b = Srv->GetNetworkName() + "-" + ra + a; + Srv->Debug("cloak: allocated "+b); + strcpy(user->dhost,b.c_str()); + } + } + +}; + + +class ModuleCloakingFactory : public ModuleFactory +{ + public: + ModuleCloakingFactory() + { + } + + ~ModuleCloakingFactory() + { + } + + virtual Module * CreateModule() + { + return new ModuleCloaking; + } + +}; + + +extern "C" void * init_module( void ) +{ + return new ModuleCloakingFactory; +} + -- cgit v1.3.1-10-gc9f91