summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.in2
-rw-r--r--config.lib45
-rw-r--r--src/network/core/config.h2
-rw-r--r--src/network/core/udp.c12
-rw-r--r--src/network/network_udp.c2
5 files changed, 34 insertions, 29 deletions
diff --git a/Makefile.in b/Makefile.in
index aed562c0f..ca99575f0 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -97,7 +97,7 @@ run: all
%.o:
@for dir in $(SRC_DIRS); do \
- $(MAKE) -C $$dir $@; \
+ $(MAKE) -C $$dir $(@:src/%=%); \
done
%.lng:
diff --git a/config.lib b/config.lib
index d4a570ffa..85c252b60 100644
--- a/config.lib
+++ b/config.lib
@@ -620,25 +620,10 @@ make_cflags_and_ldflags() {
# LDFLAGS used for HOST
LDFLAGS="$LDFLAGS"
- # Each debug level reduces the optimalization by a bit
- if [ $enable_debug -ge 1 ]
- then
- CFLAGS="$CFLAGS -g -D_DEBUG"
- OBJS_SUBDIR="debug"
- else
- OBJS_SUBDIR="release"
- fi
- if [ $enable_debug -ge 2 ]
- then
- CFLAGS="$CFLAGS -fno-inline"
- fi
- if [ $enable_debug -ge 3 ]
- then
- CFLAGS="$CFLAGS -O0"
- fi
if [ $enable_debug = 0 ]
then
# No debug, add default stuff
+ OBJS_SUBDIR="release"
if [ "$os" = "OSX" ]
then
# these compilerflags makes the app run as fast as possible without making the app unstable. It works on G3 or newer
@@ -652,18 +637,30 @@ make_cflags_and_ldflags() {
CFLAGS="$CFLAGS -O2 -fomit-frame-pointer"
fi
+ else
+ OBJS_SUBDIR="debug"
- if [ "$enable_profiling" != "0" ]
+ # Each debug level reduces the optimalization by a bit
+ if [ $enable_debug -ge 1 ]
then
- CFLAGS="$CFLAGS -pg"
- LDFLAGS="$LDFLAGS -pg"
+ CFLAGS="$CFLAGS -g -D_DEBUG"
fi
- else
- if [ "$enable_profiling" != "0" ]
+ if [ $enable_debug -ge 2 ]
then
- CFLAGS="$CFLAGS -p"
- LDFLAGS="$LDFLAGS -pg"
+ CFLAGS="$CFLAGS -fno-inline"
fi
+ if [ $enable_debug -ge 3 ]
+ then
+ CFLAGS="$CFLAGS -O0"
+ else
+ CFLAGS="$CFLAGS -O2"
+ fi
+ fi
+
+ if [ "$enable_profiling" != "0" ]
+ then
+ CFLAGS="$CFLAGS -p"
+ LDFLAGS="$LDFLAGS -pg"
fi
# Enable some things only for certain GCC versions
@@ -671,7 +668,7 @@ make_cflags_and_ldflags() {
if [ $cc_version -ge 29 ]
then
- CFLAGS="$CFLAGS -O -Wall -Wno-multichar -Wsign-compare -Wundef"
+ CFLAGS="$CFLAGS -Wall -Wno-multichar -Wsign-compare -Wundef"
CFLAGS="$CFLAGS -Wwrite-strings -Wpointer-arith"
CC_CFLAGS="$CC_CFLAGS -Wstrict-prototypes"
diff --git a/src/network/core/config.h b/src/network/core/config.h
index 0b80800f0..bc1cb6304 100644
--- a/src/network/core/config.h
+++ b/src/network/core/config.h
@@ -6,7 +6,7 @@
#ifdef ENABLE_NETWORK
/** DNS hostname of the masterserver */
-#define NETWORK_MASTER_SERVER_HOST "master.openttd.org"
+#define NETWORK_MASTER_SERVER_HOST "localhost"
/** Message sent to the masterserver to 'identify' this client as OpenTTD */
#define NETWORK_MASTER_SERVER_WELCOME_MESSAGE "OpenTTDRegister"
diff --git a/src/network/core/udp.c b/src/network/core/udp.c
index 5e32ad8e4..6699b4b87 100644
--- a/src/network/core/udp.c
+++ b/src/network/core/udp.c
@@ -116,11 +116,19 @@ void NetworkUDPReceive(const SOCKET udp)
/* Try to receive anything */
nbytes = recvfrom(udp, p.buffer, packet_len, 0, (struct sockaddr *)&client_addr, &client_len);
- /* We got some bytes for the base header of the packet.
- * Assume we received the whole packet. */
+ /* We got some bytes for the base header of the packet. */
if (nbytes > 2) {
NetworkRecv_ReadPacketSize(&p);
+ /* If the size does not match the packet must be corrupted.
+ * Otherwise it will be marked as corrupted later on. */
+ if (nbytes != p.size) {
+ DEBUG(net, 1, "received a packet with mismatching size from %s:%d",
+ inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port));
+
+ return;
+ }
+
/* Put the position on the right place */
p.pos = 2;
p.next = NULL;
diff --git a/src/network/network_udp.c b/src/network/network_udp.c
index 5caec3b42..f0a72b8a7 100644
--- a/src/network/network_udp.c
+++ b/src/network/network_udp.c
@@ -53,7 +53,7 @@ DEF_UDP_RECEIVE_COMMAND(PACKET_UDP_CLIENT_FIND_SERVER)
NetworkSend_NetworkGameInfo(packet, &_network_game_info);
// Let the client know that we are here
- NetworkSendUDP_Packet(_udp_server_socket, packet, client_addr);
+// NetworkSendUDP_Packet(_udp_server_socket, packet, client_addr);
free(packet);