7 /* $ModDesc: Provides masking of user hostnames */
9 class ModuleCloaking : public Module
21 virtual ~ModuleCloaking()
26 virtual Version GetVersion()
28 return Version(1,0,0,0);
31 virtual void OnUserConnect(userrec* user)
33 if (strstr(user->dhost,"."))
35 string a = strstr(user->dhost,".");
38 memcpy(&seed,user->dhost,sizeof(long));
39 memcpy(&s2,a.c_str(),sizeof(long));
40 sprintf(ra,"%.8X",seed*s2*strlen(user->host));
41 string b = Srv->GetNetworkName() + "-" + ra + a;
42 Srv->Debug("cloak: allocated "+b);
43 strcpy(user->dhost,b.c_str());
50 class ModuleCloakingFactory : public ModuleFactory
53 ModuleCloakingFactory()
57 ~ModuleCloakingFactory()
61 virtual Module * CreateModule()
63 return new ModuleCloaking;
69 extern "C" void * init_module( void )
71 return new ModuleCloakingFactory;