summaryrefslogtreecommitdiff
path: root/src/login_sql
diff options
context:
space:
mode:
authorLupus <Lupus@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-03-01 23:14:57 +0000
committerLupus <Lupus@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-03-01 23:14:57 +0000
commitc9d2cea67128d714db85237ef2d062f07052c904 (patch)
treea36ea17abd871318148bdd479be554fa583756fc /src/login_sql
parent2d6a0efbee3592cbee5df858da70f6652fda086e (diff)
downloadhercules-c9d2cea67128d714db85237ef2d062f07052c904.tar.gz
hercules-c9d2cea67128d714db85237ef2d062f07052c904.tar.bz2
hercules-c9d2cea67128d714db85237ef2d062f07052c904.tar.xz
hercules-c9d2cea67128d714db85237ef2d062f07052c904.zip
Fixed temp ban!!! Now players can enter the server if the ban time is over!
Fixed from ban messages N. It was showing (your game client is old) instead of (you can't login till DATE) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@1197 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/login_sql')
-rw-r--r--src/login_sql/login.c60
1 files changed, 32 insertions, 28 deletions
diff --git a/src/login_sql/login.c b/src/login_sql/login.c
index c7c4cd9d1..91fc9ccb8 100644
--- a/src/login_sql/login.c
+++ b/src/login_sql/login.c
@@ -534,27 +534,6 @@ int mmo_auth( struct mmo_account* account , int fd){
printf("auth ok %s %s" RETCODE, tmpstr, account->userid);
}
- if (atoi(sql_row[9])) {
- switch(atoi(sql_row[9])) { // packet 0x006a value + 1
- case 1: // 0 = Unregistered ID
- case 2: // 1 = Incorrect Password
- case 3: // 2 = This ID is expired
- case 4: // 3 = Rejected from Server
- case 5: // 4 = You have been blocked by the GM Team
- case 6: // 5 = Your Game's EXE file is not the latest version
- case 7: // 6 = Your are Prohibited to log in until %s
- case 8: // 7 = Server is jammed due to over populated
- case 9: // 8 = No MSG (actually, all states after 9 except 99 are No MSG, use only this)
- case 100: // 99 = This ID has been totally erased
- printf("Auth Error #%d\n", atoi(sql_row[9]));
- return atoi(sql_row[9]) - 1;
- break;
- default:
- return 99; // 99 = ID has been totally erased
- break;
- }
- }
-
/*
// do not remove this section. this is meant for future, and current forums usage
// as a login manager and CP for login server. [CLOWNISIUS]
@@ -595,24 +574,49 @@ int mmo_auth( struct mmo_account* account , int fd){
return 6; // 6 = Your are Prohibited to log in until %s
} else { // ban is finished
// reset the ban time
- sprintf(tmpsql, "UPDATE `%s` SET `ban_until`='0' WHERE %s `%s`='%s'", login_db, case_sensitive ? "BINARY" : "", login_db_userid, t_uid);
+ if (atoi(sql_row[9])==7) {//it was a temp ban - so we set STATE to 0
+ sprintf(tmpsql, "UPDATE `%s` SET `ban_until`='0', `state`='0' WHERE %s `%s`='%s'", login_db, case_sensitive ? "BINARY" : "", login_db_userid, t_uid);
+ strcpy(sql_row[9],"0"); //we clear STATE
+ } else //it was a permanent ban + temp ban. So we leave STATE = 5, but clear the temp ban
+ sprintf(tmpsql, "UPDATE `%s` SET `ban_until`='0' WHERE %s `%s`='%s'", login_db, case_sensitive ? "BINARY" : "", login_db_userid, t_uid);
+
if (mysql_query(&mysql_handle, tmpsql)) {
printf("DB server Error - %s\n", mysql_error(&mysql_handle));
}
}
}
+ if (atoi(sql_row[9])) {
+ switch(atoi(sql_row[9])) { // packet 0x006a value + 1
+ case 1: // 0 = Unregistered ID
+ case 2: // 1 = Incorrect Password
+ case 3: // 2 = This ID is expired
+ case 4: // 3 = Rejected from Server
+ case 5: // 4 = You have been blocked by the GM Team
+ case 6: // 5 = Your Game's EXE file is not the latest version
+ case 7: // 6 = Your are Prohibited to log in until %s
+ case 8: // 7 = Server is jammed due to over populated
+ case 9: // 8 = No MSG (actually, all states after 9 except 99 are No MSG, use only this)
+ case 100: // 99 = This ID has been totally erased
+ printf("Auth Error #%d\n", atoi(sql_row[9]));
+ return atoi(sql_row[9]) - 1;
+ break;
+ default:
+ return 99; // 99 = ID has been totally erased
+ break;
+ }
+ }
+
if (atol(sql_row[6]) != 0 && atol(sql_row[6]) < time(NULL)) {
return 2; // 2 = This ID is expired
}
- if ( is_user_online(atol(sql_row[0])) ) {
- printf("User [%s] is already online - Rejected.\n",sql_row[1]);
+ if ( is_user_online(atol(sql_row[0])) ) {
+ printf("User [%s] is already online - Rejected.\n",sql_row[1]);
#ifndef TWILIGHT
- return 3; // Rejected
+ return 3; // Rejected
#endif
- }
-
+ }
account->account_id = atoi(sql_row[0]);
account->login_id1 = rand();
@@ -1367,7 +1371,7 @@ int parse_login(int fd) {
}
result = -3;
}else if(result == 6){ //not lastet version ..
- result = 5;
+ //result = 5;
}
sprintf(tmpsql,"SELECT `ban_until` FROM `%s` WHERE %s `%s` = '%s'",login_db, case_sensitive ? "BINARY" : "",login_db_userid, t_uid);