* ---------------------------------------------------
*/
+using namespace std;
+
// Hostname cloaking (+x mode) module for inspircd.
// version 1.0.0.1 by brain (C. J. Edwards) Mar 2004.
//
// the server->server link, and all encoding of hosts is
// done locally on the server by this module.
-#include <stdio.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
#include "users.h"
#include "channels.h"
#include "modules.h"
{
byte *p = (byte *)buf;
- do {
+ do
+ {
*buf++ = (word32)((unsigned)p[3] << 8 | p[2]) << 16 |
((unsigned)p[1] << 8 | p[0]);
p += 4;
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;
}
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);
/* 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);
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++)
{
}
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
virtual ~ModuleCloaking()
{
- // not really neccessary, but free it anyway
- delete Srv;
}
virtual Version GetVersion()
{
}
- virtual Module * CreateModule()
+ virtual Module * CreateModule(Server* Me)
{
- return new ModuleCloaking;
+ return new ModuleCloaking(Me);
}
};