diff options
-rw-r--r-- | Makefile.in | 2 | ||||
-rw-r--r-- | config.lib | 45 | ||||
-rw-r--r-- | src/network/core/config.h | 2 | ||||
-rw-r--r-- | src/network/core/udp.c | 12 | ||||
-rw-r--r-- | src/network/network_udp.c | 2 |
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); |