summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorlordttseven <lordttseven@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-02-18 22:05:21 +0000
committerlordttseven <lordttseven@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-02-18 22:05:21 +0000
commite4f1bb413aa609b173707b9e5d960ae0476dab61 (patch)
tree2b6ff2ec97a7008bc667f38e5b700dfe40c3fe13 /src/common
parentb687d790d516bf46dd03767f0e479b4a6a41eac2 (diff)
downloadhercules-e4f1bb413aa609b173707b9e5d960ae0476dab61.tar.gz
hercules-e4f1bb413aa609b173707b9e5d960ae0476dab61.tar.bz2
hercules-e4f1bb413aa609b173707b9e5d960ae0476dab61.tar.xz
hercules-e4f1bb413aa609b173707b9e5d960ae0476dab61.zip
* adjusted socket_max_client_packet to a more accurate (if guessed) value to prevent undefined client behavior (may only affect more recent clients?)
+ added a workaround for too large ZC_SKILLINFO_LIST packets resulting from all_skill group permission by sending excess skills one by one (bugreport:5348 and bugreport:5349) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15609 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/common')
-rw-r--r--src/common/socket.c3
-rw-r--r--src/common/socket.h1
2 files changed, 3 insertions, 1 deletions
diff --git a/src/common/socket.c b/src/common/socket.c
index 592755d5a..fd9534c3b 100644
--- a/src/common/socket.c
+++ b/src/common/socket.c
@@ -219,7 +219,8 @@ int naddr_ = 0; // # of ip addresses
// Maximum packet size in bytes, which the client is able to handle.
// Larger packets cause a buffer overflow and stack corruption.
-static size_t socket_max_client_packet = 24576;
+// TODO: This value is based on pure observation with newer clients. Replace with the actual buffer size if we ever get our hands on it.
+static size_t socket_max_client_packet = 8192;
// initial recv buffer size (this will also be the max. size)
// biggest known packet: S 0153 <len>.w <emblem data>.?B -> 24x24 256 color .bmp (0153 + len.w + 1618/1654/1756 bytes)
diff --git a/src/common/socket.h b/src/common/socket.h
index a5d519d0e..b02e83d36 100644
--- a/src/common/socket.h
+++ b/src/common/socket.h
@@ -94,6 +94,7 @@ struct socket_data
void* session_data; // stores application-specific data related to the session
};
+static size_t socket_max_client_packet;
// Data prototype declaration