X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_cloaking.cpp;h=20d60ebef5f08f515be1aaf6e8241ab529e4f2f2;hb=43fe72edad4c5dfd1a3a700bea17c8ee7a7c3d8e;hp=c6595eb6cf0967c6fba281b43a2d5c6ec5c3c560;hpb=bf9f5acb8d00fbac49c893283cd1ce549934e38d;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_cloaking.cpp b/src/modules/m_cloaking.cpp index c6595eb6c..20d60ebef 100644 --- a/src/modules/m_cloaking.cpp +++ b/src/modules/m_cloaking.cpp @@ -14,6 +14,8 @@ * --------------------------------------------------- */ +using namespace std; + // Hostname cloaking (+x mode) module for inspircd. // version 1.0.0.1 by brain (C. J. Edwards) Mar 2004. // @@ -27,7 +29,10 @@ // the server->server link, and all encoding of hosts is // done locally on the server by this module. -#include +#include +#include +#include +#include #include "users.h" #include "channels.h" #include "modules.h" @@ -62,7 +67,8 @@ class ModuleCloaking : public Module { byte *p = (byte *)buf; - do { + do + { *buf++ = (word32)((unsigned)p[3] << 8 | p[2]) << 16 | ((unsigned)p[1] << 8 | p[0]); p += 4; @@ -91,7 +97,8 @@ class ModuleCloaking : public Module ctx->bytes[1]++; /* Carry from low to high */ t = 64 - (t & 0x3f); /* Space available in ctx->in (at least 1) */ - if ((unsigned)t > (unsigned)len) { + if ((unsigned)t > (unsigned)len) + { memcpy((byte *)ctx->in + 64 - (unsigned)t, buf, len); return; } @@ -103,7 +110,8 @@ class ModuleCloaking : public Module len -= (unsigned)t; /* Process data in 64-byte chunks */ - while (len >= 64) { + while (len >= 64) + { memcpy(ctx->in, buf, 64); byteSwap(ctx->in, 16); xMD5Transform(ctx->buf, ctx->in); @@ -126,7 +134,8 @@ class ModuleCloaking : public Module /* Bytes of padding needed to make 56 bytes (-8..55) */ count = 56 - 1 - count; - if (count < 0) { /* Padding forces an extra block */ + if (count < 0) + { /* Padding forces an extra block */ memset(p, 0, count+8); byteSwap(ctx->in, 16); xMD5Transform(ctx->buf, ctx->in); @@ -247,7 +256,7 @@ class ModuleCloaking : public Module int i = 0; unsigned char bytes[16]; char hash[MAXBUF]; - strcpy(hash,""); + *hash = 0; MyMD5((char*)bytes,src,strlen(src)); for (i = 0; i < 16; i++) { @@ -262,10 +271,11 @@ class ModuleCloaking : public Module } public: - ModuleCloaking() + ModuleCloaking(Server* Me) + : Module::Module(Me) { - // We must create an instance of the Server class to work with - Srv = new Server; + // We must take a copy of the Server class to work with + Srv = Me; // we must create a new mode. Set the parameters so the // mode doesn't require oper, and is a client usermode @@ -285,8 +295,6 @@ class ModuleCloaking : public Module virtual ~ModuleCloaking() { - // not really neccessary, but free it anyway - delete Srv; } virtual Version GetVersion() @@ -395,9 +403,9 @@ class ModuleCloakingFactory : public ModuleFactory { } - virtual Module * CreateModule() + virtual Module * CreateModule(Server* Me) { - return new ModuleCloaking; + return new ModuleCloaking(Me); } };