diff options
author | Andrei Karas <akaras@inbox.ru> | 2012-08-06 21:56:25 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-08-06 21:56:25 +0300 |
commit | 7c30708a194f37fd2dc748256c72d8b06badd0fc (patch) | |
tree | f8eaf4a03fdc542200299b654e1e0db7e69f3677 | |
parent | 3dea83eeef37e201a3a32d7824377a1a49c73964 (diff) | |
download | manaplus-7c30708a194f37fd2dc748256c72d8b06badd0fc.tar.gz manaplus-7c30708a194f37fd2dc748256c72d8b06badd0fc.tar.bz2 manaplus-7c30708a194f37fd2dc748256c72d8b06badd0fc.tar.xz manaplus-7c30708a194f37fd2dc748256c72d8b06badd0fc.zip |
Change a bit network buffers and add check.
-rw-r--r-- | src/net/eathena/network.cpp | 10 | ||||
-rw-r--r-- | src/net/tmwa/network.cpp | 10 |
2 files changed, 18 insertions, 2 deletions
diff --git a/src/net/eathena/network.cpp b/src/net/eathena/network.cpp index 17514d025..e7e15d8e4 100644 --- a/src/net/eathena/network.cpp +++ b/src/net/eathena/network.cpp @@ -112,7 +112,8 @@ short packet_lengths[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; -const unsigned int BUFFER_SIZE = 655360; +const unsigned int BUFFER_SIZE = 1000000; +const unsigned int BUFFER_LIMIT = 930000; int networkThread(void *data) { @@ -443,6 +444,13 @@ void Network::receive() case 1: // Receive data from the socket SDL_mutexP(mMutex); + if (mInSize > BUFFER_LIMIT) + { + SDL_mutexV(mMutex); + SDL_Delay(100); + continue; + } + ret = SDLNet_TCP_Recv(mSocket, mInBuffer + mInSize, BUFFER_SIZE - mInSize); diff --git a/src/net/tmwa/network.cpp b/src/net/tmwa/network.cpp index c6e31af3c..32b1174c1 100644 --- a/src/net/tmwa/network.cpp +++ b/src/net/tmwa/network.cpp @@ -90,7 +90,8 @@ short packet_lengths[] = -1, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; -const unsigned int BUFFER_SIZE = 655360; +const unsigned int BUFFER_SIZE = 1000000; +const unsigned int BUFFER_LIMIT = 930000; int networkThread(void *data) { @@ -421,6 +422,13 @@ void Network::receive() case 1: // Receive data from the socket SDL_mutexP(mMutex); + if (mInSize > BUFFER_LIMIT) + { + SDL_mutexV(mMutex); + SDL_Delay(100); + continue; + } + ret = SDLNet_TCP_Recv(mSocket, mInBuffer + mInSize, BUFFER_SIZE - mInSize); |