aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsapier <Sapier at GMX dot net>2014-07-16 20:01:00 +0200
committersapier <Sapier at GMX dot net>2014-07-16 20:01:00 +0200
commitd38f6ebb9bb9ff201b3a1e19a8e6ad311dbe4972 (patch)
tree72e4823f34c274519c92f882f2297dede6536b0b
parent7d72ac6a6954e25d635795e099fbe51e4a668df9 (diff)
downloadminetest-d38f6ebb9bb9ff201b3a1e19a8e6ad311dbe4972.tar.gz
minetest-d38f6ebb9bb9ff201b3a1e19a8e6ad311dbe4972.tar.bz2
minetest-d38f6ebb9bb9ff201b3a1e19a8e6ad311dbe4972.zip
Fix error handling on inconsistent client ready message
Fix android makefile to provide a correct dummy githash if detection fails
-rw-r--r--build/android/Makefile6
-rw-r--r--src/server.cpp10
2 files changed, 13 insertions, 3 deletions
diff --git a/build/android/Makefile b/build/android/Makefile
index 38a3cbb0e..6528e839c 100644
--- a/build/android/Makefile
+++ b/build/android/Makefile
@@ -691,7 +691,11 @@ $(ROOT)/jni/src/android_version.h :
echo "#define VERSION_PATCH_ORIG $$(cat ${ROOT}/../../CMakeLists.txt | \
grep ^set\(VERSION_PATCH\ | sed 's/)/ /' | awk '{print $$2;}')" \
>> ${ROOT}/jni/src/android_version.h; \
- echo "#define CMAKE_VERSION_GITHASH \"$$(git rev-parse --short=8 HEAD)\"" \
+ export GITHASH=$$(git rev-parse --short=8 HEAD); \
+ if [ "x$$GITHASH" = "x" ] ; then \
+ export GITHASH=gUnknown; \
+ fi; \
+ echo "#define CMAKE_VERSION_GITHASH \"$$GITHASH\"" \
>> ${ROOT}/jni/src/android_version.h; \
echo "#define CMAKE_VERSION_STRING STR(VERSION_MAJOR)\".\"STR(VERSION_MINOR)\
\".\"STR(VERSION_PATCH)" \
diff --git a/src/server.cpp b/src/server.cpp
index 1e644ce6c..40857f84d 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -1732,14 +1732,20 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
if (playersao == NULL) {
errorstream
- << "TOSERVER_CLIENT_READY stage 2 client init failed for peer "
+ << "TOSERVER_CLIENT_READY stage 2 client init failed for peer_id: "
<< peer_id << std::endl;
+ m_con.DisconnectPeer(peer_id);
return;
}
- if(datasize < 2+8)
+ if(datasize < 2+8) {
+ errorstream
+ << "TOSERVER_CLIENT_READY client sent inconsistent data, disconnecting peer_id: "
+ << peer_id << std::endl;
+ m_con.DisconnectPeer(peer_id);
return;
+ }
m_clients.setClientVersion(
peer_id,