summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt4
-rw-r--r--Makefile.in4
-rw-r--r--configure2
-rw-r--r--src/login_sql/login.c25
-rw-r--r--src/map/clif.c6
5 files changed, 29 insertions, 12 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index c98951b1c..db6ef9435 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,10 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2007/09/21
+ * Makefile deleting .svn in save folder.
+ * Limited the number of packets parsed per cycle to 3.
+ * Fixed sql login throwing an out-of-place debug message and escaping too
+ much of the name string when creating a new login with _M/F.
* Configure script detects 64bit distributions of MySQL.
* Generated the configure script with cygwin's autoconf. [FlavioJS]
2007/09/20
diff --git a/Makefile.in b/Makefile.in
index a1075c85a..c2c5efc2d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -78,11 +78,13 @@ conf:
@for f in $$(ls conf-tmpl) ; do if test "$$f" != "import" ; then cp -rf conf-tmpl/$$f conf ; fi ; done
@rm -rf conf/*/.svn
# save:
-# 1) create save folder
+# 1) create save folder
# 2) add missing files
+# 3) remove remaining .svn folder
@echo "building save folder..."
@if test ! -d save ; then mkdir save ; fi
@for f in $$(ls save-tmpl) ; do if test ! -e save/$$f ; then cp save-tmpl/$$f save ; fi ; done
+ @rm -rf save/.svn
clean:
@$(MAKE) -C src/common $@
diff --git a/configure b/configure
index 9a2377e76..ef4c50cbb 100644
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
#! /bin/sh
-# From configure.in Revision: 11245 .
+# From configure.in Revision: 11252 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61.
#
diff --git a/src/login_sql/login.c b/src/login_sql/login.c
index d3200893b..d1b06547d 100644
--- a/src/login_sql/login.c
+++ b/src/login_sql/login.c
@@ -411,6 +411,7 @@ int mmo_auth_new(struct mmo_account* account, char sex)
unsigned int tick = gettick();
char md5buf[32+1];
SqlStmt* stmt;
+ int result = 0;
//Account Registration Flood Protection by [Kevin]
if( DIFF_TICK(tick, new_reg_tick) < 0 && num_regs >= allowed_regs )
@@ -421,17 +422,19 @@ int mmo_auth_new(struct mmo_account* account, char sex)
// check if the account doesn't exist already
stmt = SqlStmt_Malloc(sql_handle);
- if ( SQL_SUCCESS != SqlStmt_Prepare(stmt, "SELECT `%s` FROM `%s` WHERE `userid` = ?", login_db_userid, login_db)
- || SQL_SUCCESS != SqlStmt_BindParam(stmt, 0, SQLDT_STRING, account->userid, strnlen(account->userid, NAME_LENGTH))
- || SQL_SUCCESS != SqlStmt_Execute(stmt)
- || SqlStmt_NumRows(stmt) > 0 )
+ if( SQL_SUCCESS != SqlStmt_Prepare(stmt, "SELECT `%s` FROM `%s` WHERE `userid` = ?", login_db_userid, login_db)
+ || SQL_SUCCESS != SqlStmt_BindParam(stmt, 0, SQLDT_STRING, account->userid, strnlen(account->userid, NAME_LENGTH))
+ || SQL_SUCCESS != SqlStmt_Execute(stmt) )
{
SqlStmt_ShowDebug(stmt);
- SqlStmt_Free(stmt);
- return 1; // incorrect user/pass
+ result = 1;// error
}
+ else if( SqlStmt_NumRows(stmt) > 0 )
+ result = 1;// incorrect user/pass
SqlStmt_Free(stmt);
-
+ if( result )
+ return result;// error or incorrect user/pass
+
// insert new entry into db
//TODO: error checking
stmt = SqlStmt_Malloc(sql_handle);
@@ -515,8 +518,12 @@ int mmo_auth(struct mmo_account* account, int fd)
account->userid[len-2] == '_' && memchr("FfMm", (unsigned char)account->userid[len-1], 4) ) // _M/_F suffix
{
int result;
- account->userid[len-2] = '\0';// terminate the name.
- result = mmo_auth_new(account, account->userid[len-1]);
+ char sex;
+
+ len -= 2;
+ account->userid[len] = '\0';// nul-terminate the name.
+ sex = account->userid[len+1];
+ result = mmo_auth_new(account, sex);
if( result )
return result;// Failed to make account. [Skotlex].
}
diff --git a/src/map/clif.c b/src/map/clif.c
index ff6ccb9cf..fab1e00ad 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -11521,8 +11521,12 @@ int clif_parse(int fd)
{
int cmd, packet_ver, packet_len, err;
TBL_PC* sd;
+ int pnum;
- while(1)
+ //TODO apply deplays or disconnect based on packet throughput [FlavioJS]
+ // Note: "click masters" can do 80+ clicks in 10 seconds
+
+ for( pnum = 0; pnum < 3; ++pnum )// Limit max packets per cycle to 3 (delay packet spammers) [FlavioJS]
{ // begin main client packet processing loop
sd = (TBL_PC *)session[fd]->session_data;