diff options
author | Lance <Lance@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-05-20 08:14:35 +0000 |
---|---|---|
committer | Lance <Lance@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-05-20 08:14:35 +0000 |
commit | 930cbe9d946f40e3698765b05b03f97df52fa471 (patch) | |
tree | c3e31bdbc6582dbe3cb9bbfc2bb5e10d43a006ba /src | |
parent | c9c66502e813bcbcc40f4933d68577e4788c2193 (diff) | |
download | hercules-930cbe9d946f40e3698765b05b03f97df52fa471.tar.gz hercules-930cbe9d946f40e3698765b05b03f97df52fa471.tar.bz2 hercules-930cbe9d946f40e3698765b05b03f97df52fa471.tar.xz hercules-930cbe9d946f40e3698765b05b03f97df52fa471.zip |
* Abit of alterations to login-server.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@6664 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r-- | src/login/login.c | 23 | ||||
-rw-r--r-- | src/login/login.h | 4 | ||||
-rw-r--r-- | src/login_sql/login.c | 12 | ||||
-rw-r--r-- | src/login_sql/login.h | 4 |
4 files changed, 20 insertions, 23 deletions
diff --git a/src/login/login.c b/src/login/login.c index 5204b6dbd..c294665e4 100644 --- a/src/login/login.c +++ b/src/login/login.c @@ -35,7 +35,6 @@ void Gettimeofday(struct timeval *timenow) #include <string.h>
#include <stdarg.h>
-#include "login.h"
#include "../common/core.h"
#include "../common/socket.h"
#include "../common/timer.h"
@@ -47,6 +46,7 @@ void Gettimeofday(struct timeval *timenow) #include "../common/malloc.h"
#include "../common/strlib.h"
#include "../common/showmsg.h"
+#include "login.h"
#ifdef PASSWORDENC
#include "md5calc.h"
@@ -1093,10 +1093,10 @@ int mmo_auth_new(struct mmo_account* account, char sex, char* email) { auth_dat[i].account_id = account_id_count++;
- strncpy(auth_dat[i].userid, account->userid, 24);
+ strncpy(auth_dat[i].userid, account->userid, NAME_LENGTH);
auth_dat[i].userid[23] = '\0';
- strncpy(auth_dat[i].pass, account->passwd, 32);
+ strncpy(auth_dat[i].pass, account->passwd, NAME_LENGTH);
auth_dat[i].pass[23] = '\0';
memcpy(auth_dat[i].lastlogin, "-", 2);
@@ -1233,7 +1233,7 @@ int mmo_auth(struct mmo_account* account, int fd) { if(use_md5_passwds)
MD5_String(account->passwd, user_password);
else
- memcpy(user_password, account->passwd, 25);
+ memcpy(user_password, account->passwd, NAME_LENGTH);
encpasswdok = 0;
#ifdef PASSWORDENC
ld = (struct login_session_data*)session[fd]->session_data;
@@ -2147,19 +2147,16 @@ int parse_admin(int fd) { return 0;
{
struct mmo_account ma;
- ma.userid = (char*)RFIFOP(fd, 2);
+ memcpy(ma.userid,RFIFOP(fd, 2),NAME_LENGTH);
ma.userid[23] = '\0';
- memcpy(ma.passwd, RFIFOP(fd, 26), 24);
+ memcpy(ma.passwd, RFIFOP(fd, 26), NAME_LENGTH);
ma.passwd[23] = '\0';
memcpy(ma.lastlogin, "-", 2);
ma.sex = RFIFOB(fd,50);
WFIFOW(fd,0) = 0x7931;
WFIFOL(fd,2) = 0xffffffff;
memcpy(WFIFOP(fd,6), RFIFOP(fd,2), 24);
- if (strlen(ma.userid) > 23 || strlen(ma.passwd) > 23) {
- login_log("'ladmin': Attempt to create an invalid account (account or pass is too long, ip: %s)" RETCODE,
- ip);
- } else if (strlen(ma.userid) < 4 || strlen(ma.passwd) < 4) {
+ if (strlen(ma.userid) < 4 || strlen(ma.passwd) < 4) {
login_log("'ladmin': Attempt to create an invalid account (account or pass is too short, ip: %s)" RETCODE,
ip);
} else if (ma.sex != 'F' && ma.sex != 'M') {
@@ -3091,7 +3088,7 @@ int parse_login(int fd) { return 0;
account.version = RFIFOL(fd, 2); //for exe version check [Sirius]
- account.userid = (char*)RFIFOP(fd,6);
+ memcpy(account.userid,RFIFOP(fd,6),NAME_LENGTH);
account.userid[23] = '\0';
remove_control_chars((unsigned char *)account.userid);
if (RFIFOW(fd,0) == 0x64) {
@@ -3246,10 +3243,10 @@ int parse_login(int fd) { {
int GM_value, len;
char* server_name;
- account.userid = (char*)RFIFOP(fd,2);
+ memcpy(account.userid,RFIFOP(fd,2),NAME_LENGTH);
account.userid[23] = '\0';
remove_control_chars((unsigned char *)account.userid);
- memcpy(account.passwd, RFIFOP(fd,26), 24);
+ memcpy(account.passwd, RFIFOP(fd,26), NAME_LENGTH);
account.passwd[23] = '\0';
remove_control_chars((unsigned char *)account.passwd);
account.passwdenc = 0;
diff --git a/src/login/login.h b/src/login/login.h index 98f397605..643c5df4f 100644 --- a/src/login/login.h +++ b/src/login/login.h @@ -18,8 +18,8 @@ extern int login_port;
struct mmo_account {
int version; //Added for version check [Sirius]
- char* userid;
- char passwd[33];
+ char userid[NAME_LENGTH];
+ char passwd[NAME_LENGTH];
int passwdenc;
long account_id;
diff --git a/src/login_sql/login.c b/src/login_sql/login.c index 7a40808ab..2d94aba2f 100644 --- a/src/login_sql/login.c +++ b/src/login_sql/login.c @@ -643,8 +643,8 @@ int mmo_auth( struct mmo_account* account , int fd){ jstrescapecpy(t_uid,account->userid);
if (account->passwdenc==PASSWORDENC) {
- memset(t_pass, 0, sizeof(t_pass));
- memcpy(t_pass, account->passwd, strlen(account->passwd));
+ memcpy(t_pass, account->passwd, NAME_LENGTH);
+ t_pass[24] = '\0';
} else
jstrescapecpy(t_pass, account->passwd);
@@ -1533,9 +1533,9 @@ int parse_login(int fd) { ShowInfo("client connection request %s from %d.%d.%d.%d\n", RFIFOP(fd, 6), p[0], p[1], p[2], p[3]);
account.version = RFIFOL(fd, 2);
- account.userid = (char*)RFIFOP(fd, 6);
+ memcpy(account.userid,RFIFOP(fd, 6),NAME_LENGTH);
account.userid[23] = '\0';
- account.passwd = (char*)RFIFOP(fd, 30);
+ memcpy(account.passwd,RFIFOP(fd, 30),NAME_LENGTH);
account.passwd[23] = '\0';
#ifdef PASSWORDENC
account.passwdenc= (RFIFOW(fd,0)==0x64)?0:PASSWORDENC;
@@ -1817,9 +1817,9 @@ int parse_login(int fd) { ShowInfo("server connection request %s @ %d.%d.%d.%d:%d (%d.%d.%d.%d)\n",
RFIFOP(fd, 60), RFIFOB(fd, 54), RFIFOB(fd, 55), RFIFOB(fd, 56), RFIFOB(fd, 57), RFIFOW(fd, 58),
p[0], p[1], p[2], p[3]);
- account.userid = (char*)RFIFOP(fd, 2);
+ memcpy(account.userid,RFIFOP(fd, 2),NAME_LENGTH);
account.userid[23] = '\0';
- account.passwd = (char*)RFIFOP(fd, 26);
+ memcpy(account.passwd,RFIFOP(fd, 26),NAME_LENGTH);
account.passwd[23] = '\0';
account.passwdenc = 0;
server_name = RFIFOP(fd,60);
diff --git a/src/login_sql/login.h b/src/login_sql/login.h index b1f6ee263..b215c7266 100644 --- a/src/login_sql/login.h +++ b/src/login_sql/login.h @@ -30,8 +30,8 @@ struct mmo_account {
int version; //Added by sirius for versioncheck
- char* userid;
- char* passwd;
+ char userid[NAME_LENGTH];
+ char passwd[NAME_LENGTH];
int passwdenc;
|