summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorhemagx <hemagx2@gmail.com>2016-02-17 14:26:01 +0200
committerHaru <haru@dotalux.com>2016-07-12 20:58:34 +0200
commit732c6d6019d608f9f0e151ec75c48fcc498d4f51 (patch)
tree85691162dcea7fad5c050cf3414bed2e77cc33f9 /src/common
parentad05eb4f2e531f5a9aec6f27d2f69fd53b6525ac (diff)
downloadhercules-732c6d6019d608f9f0e151ec75c48fcc498d4f51.tar.gz
hercules-732c6d6019d608f9f0e151ec75c48fcc498d4f51.tar.bz2
hercules-732c6d6019d608f9f0e151ec75c48fcc498d4f51.tar.xz
hercules-732c6d6019d608f9f0e151ec75c48fcc498d4f51.zip
Interface md5calc.c
Diffstat (limited to 'src/common')
-rw-r--r--src/common/core.c2
-rw-r--r--src/common/md5calc.c21
-rw-r--r--src/common/md5calc.h16
3 files changed, 27 insertions, 12 deletions
diff --git a/src/common/core.c b/src/common/core.c
index ce92a77e3..19f2ef0c7 100644
--- a/src/common/core.c
+++ b/src/common/core.c
@@ -40,6 +40,7 @@
# include "common/HPM.h"
# include "common/conf.h"
# include "common/ers.h"
+# include "common/md5calc.h"
# include "common/socket.h"
# include "common/sql.h"
# include "common/thread.h"
@@ -261,6 +262,7 @@ void core_defaults(void) {
timer_defaults();
db_defaults();
socket_defaults();
+ md5_defaults();
#endif
}
/**
diff --git a/src/common/md5calc.c b/src/common/md5calc.c
index d346c8aa4..ad0f7c2d8 100644
--- a/src/common/md5calc.c
+++ b/src/common/md5calc.c
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2012-2015 Hercules Dev Team
+ * Copyright (C) 2012-2016 Hercules Dev Team
* Copyright (C) Athena Dev Teams
*
* Hercules is free software: you can redistribute it and/or modify
@@ -37,6 +37,9 @@
#include <stdlib.h>
#include <string.h>
+struct md5_interface md5_s;
+struct md5_interface *md5;
+
// Global variable
static unsigned int *pX;
@@ -232,18 +235,12 @@ static void MD5_String2binary(const char * string, unsigned char * output)
//-------------------------------------------------------------------
// The function for the exteriors
-/** output is the coded binary in the character sequence which wants to code string. */
-void MD5_Binary(const char * string, unsigned char * output)
-{
- MD5_String2binary(string,output);
-}
-
/** output is the coded character sequence in the character sequence which wants to code string. */
void MD5_String(const char *string, char *output)
{
unsigned char digest[16];
- MD5_String2binary(string,digest);
+ md5->binary(string,digest);
snprintf(output, 33, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
digest[ 0], digest[ 1], digest[ 2], digest[ 3],
digest[ 4], digest[ 5], digest[ 6], digest[ 7],
@@ -259,3 +256,11 @@ void MD5_Salt(unsigned int len, char * output)
output[i] = (char)(1 + rnd() % 255);
}
+
+void md5_defaults(void)
+{
+ md5 = &md5_s;
+ md5->binary = MD5_String2binary;
+ md5->string = MD5_String;
+ md5->salt = MD5_Salt;
+}
diff --git a/src/common/md5calc.h b/src/common/md5calc.h
index 0294c3ca1..1611b6fee 100644
--- a/src/common/md5calc.h
+++ b/src/common/md5calc.h
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2012-2015 Hercules Dev Team
+ * Copyright (C) 2012-2016 Hercules Dev Team
* Copyright (C) Athena Dev Teams
*
* Hercules is free software: you can redistribute it and/or modify
@@ -21,10 +21,18 @@
#ifndef COMMON_MD5CALC_H
#define COMMON_MD5CALC_H
+#include "common/hercules.h"
+
+struct md5_interface {
+ void (*string) (const char *string, char *output);
+ void (*binary) (const char *string, unsigned char *output);
+ void (*salt) (unsigned int len, char *output);
+};
+
#ifdef HERCULES_CORE
-void MD5_String(const char * string, char * output);
-void MD5_Binary(const char * string, unsigned char * output);
-void MD5_Salt(unsigned int len, char * output);
+void md5_defaults(void);
#endif // HERCULES_CORE
+HPShared struct md5_interface *md5;
+
#endif /* COMMON_MD5CALC_H */