]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_opermd5.cpp
WHEEEEE!!!!!
[user/henk/code/inspircd.git] / src / modules / m_opermd5.cpp
index 2c2b514042e3b2039449f6e3f1b8e724c3620ede..e8fa613ff1b2668eb2ce81368eaba33e21a0e1d6 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  Inspire is copyright (C) 2002-2004 ChatSpike-Dev.
+ *  InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
  *                       E-mail:
  *                <brain@chatspike.net>
  *               <Craig@chatspike.net>
 using namespace std;
 
 #include <stdio.h>
+#include "inspircd_config.h"
+#ifdef HAS_STDINT
+#include <stdint.h>
+#endif
 #include "users.h"
 #include "channels.h"
 #include "modules.h"
 #include "helperfuncs.h"
 
-
 /* The four core functions - F1 is optimized somewhat */
 #define F1(x, y, z) (z ^ (x & (y ^ z)))
 #define F2(x, y, z) F1(z, x, y)
@@ -35,17 +38,21 @@ using namespace std;
 #define MD5STEP(f,w,x,y,z,in,s) \
          (w += f(x,y,z) + in, w = (w<<s | w>>(32-s)) + x)
 
-typedef unsigned long word32;
+#ifndef HAS_STDINT
+typedef unsigned int uint32_t;
+#endif
+
+typedef uint32_t word32; /* NOT unsigned long. We don't support 16 bit platforms, anyway. */
 typedef unsigned char byte;
 
-struct MD5Context {
+class MD5Context : public classbase
+{
+ public:
        word32 buf[4];
        word32 bytes[2];
        word32 in[16];
 };
 
-Server *Srv;
-
 void MD5Init(struct MD5Context *context);
 void MD5Update(struct MD5Context *context, byte const *buf, int len);
 void MD5Final(byte digest[16], struct MD5Context *context);
@@ -267,18 +274,20 @@ class cmd_mkpasswd : public command_t
        cmd_mkpasswd () : command_t("MKPASSWD", 'o', 1)
        {
                this->source = "m_opermd5.so";
+               syntax = "<any-text>";
        }
 
-       void Handle (char **parameters, int pcnt, userrec *user)
+       void Handle (const char** parameters, int pcnt, userrec *user)
        {
                char buffer[MAXBUF];
                GenHash(parameters[0],buffer);
-               WriteServ(user->fd,"NOTICE %s :MD5 hashed password for %s is %s",user->nick,parameters[0],buffer);
+               user->WriteServ("NOTICE %s :MD5 hashed password for %s is %s",user->nick,parameters[0],buffer);
        }
 };
 
 class ModuleOperMD5 : public Module
 {
+       Server* Srv;
        cmd_mkpasswd* mycommand;
  public:
 
@@ -294,7 +303,12 @@ class ModuleOperMD5 : public Module
        {
        }
 
-       virtual int OnOperCompare(std::string data, std::string input)
+       void Implements(char* List)
+       {
+               List[I_OnOperCompare] = 1;
+       }
+
+       virtual int OnOperCompare(const std::string &data, const std::string &input)
        {
                char buffer[MAXBUF];
                if (data.length() == 32)        // if its 32 chars long, try it as an md5
@@ -313,11 +327,6 @@ class ModuleOperMD5 : public Module
        {
                return Version(1,0,0,1,VF_VENDOR);
        }
-       
-       virtual void OnUserConnect(userrec* user)
-       {
-       }
-
 };