]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_opermd5.cpp
Atheme wont work right, because this wasnt VF_COMMON. If its not VF_COMMON, its not...
[user/henk/code/inspircd.git] / src / modules / m_opermd5.cpp
index 3cfb74961ab6c3f631baa0f1ba165a8805180266..7a6610eca661b9d5c19ce78a3bebc325e1ed536d 100644 (file)
@@ -26,7 +26,7 @@ using namespace std;
 #include "users.h"
 #include "channels.h"
 #include "modules.h"
-#include "helperfuncs.h"
+
 #include "inspircd.h"
 
 /* The four core functions - F1 is optimized somewhat */
@@ -46,6 +46,8 @@ typedef unsigned int uint32_t;
 typedef uint32_t word32; /* NOT unsigned long. We don't support 16 bit platforms, anyway. */
 typedef unsigned char byte;
 
+/** An MD5 context, used by m_opermd5
+ */
 class MD5Context : public classbase
 {
  public:
@@ -250,39 +252,36 @@ void MyMD5(void *dest, void *orig, int len)
 
 void GenHash(const char* src, char* dest)
 {
-       int i = 0;
        unsigned char bytes[16];
-       char hash[1024];
-       *hash = 0;
+       const char* xtab = "0123456789abcdef";
+
        MyMD5((char*)bytes,(void*)src,strlen(src));
-       for (i = 0; i < 16; i++)
+
+       for (int i = 0; i < 16; i++)
        {
-               const char* xtab = "0123456789abcdef";
-               unsigned char lo = xtab[bytes[i] % 16];
-               unsigned char hi = xtab[bytes[i] / 16];
-               char hx[3];
-               hx[0] = hi;
-               hx[1] = lo;
-               hx[2] = '\0';
-               strcat(hash,hx);
+               *dest++ = xtab[bytes[i] / 16];
+               *dest++ = xtab[bytes[i] % 16];
        }
-       strcpy(dest,hash);
+       *dest++ = 0;
 }
 
+/** Handle /MKPASSWD
+ */
 class cmd_mkpasswd : public command_t
 {
  public:
- cmd_mkpasswd (InspIRCd* Instance) : command_t(Instance,"MKPASSWD", 'o', 1)
      cmd_mkpasswd (InspIRCd* Instance) : command_t(Instance,"MKPASSWD", 'o', 1)
        {
                this->source = "m_opermd5.so";
                syntax = "<any-text>";
        }
 
-       void Handle (const char** parameters, int pcnt, userrec *user)
+       CmdResult Handle (const char** parameters, int pcnt, userrec *user)
        {
                char buffer[MAXBUF];
                GenHash(parameters[0],buffer);
                user->WriteServ("NOTICE %s :MD5 hashed password for %s is %s",user->nick,parameters[0],buffer);
+               return CMD_SUCCESS;
        }
 };
 
@@ -319,7 +318,7 @@ class ModuleOperMD5 : public Module
                        {
                                return 1;
                        }
-                       else return -1;
+                       else return 0;
                }
                return 0;
        }