src/network/network_server.cpp
changeset 6561 75a3a9146abb
parent 6504 5578f2fa1a73
child 6573 7624f942237f
--- a/src/network/network_server.cpp	Tue Mar 06 22:00:13 2007 +0000
+++ b/src/network/network_server.cpp	Tue Mar 06 22:00:42 2007 +0000
@@ -214,6 +214,11 @@
 	//    uint8:  Type of password
 	//
 
+	/* Invalid packet when status is AUTH or higher */
+	if (cs->status >= STATUS_AUTH) return;
+
+	cs->status = STATUS_AUTHORIZING;
+
 	Packet *p = NetworkSend_Init(PACKET_SERVER_NEED_PASSWORD);
 	p->Send_uint8(type);
 	cs->Send_Packet(p);
@@ -1533,6 +1538,12 @@
 				IConsolePrintF(_icolour_err,"Client #%d is dropped because it took longer than %d ticks for him to join", cs->index, _network_max_join_time);
 				NetworkCloseClient(cs);
 			}
+		} else if (cs->status == STATUS_INACTIVE) {
+			int lag = NetworkCalculateLag(cs);
+			if (lag > 4 * DAY_TICKS) {
+				IConsolePrintF(_icolour_err,"Client #%d is dropped because it took longer than %d ticks to start the joining process", cs->index, 4 * DAY_TICKS);
+				NetworkCloseClient(cs);
+			}
 		}
 
 		if (cs->status >= STATUS_PRE_ACTIVE) {