equal
deleted
inserted
replaced
39 #include "../md5.h" |
39 #include "../md5.h" |
40 |
40 |
41 // global variables (declared in network_data.h) |
41 // global variables (declared in network_data.h) |
42 CommandPacket *_local_command_queue; |
42 CommandPacket *_local_command_queue; |
43 |
43 |
44 SOCKET _udp_client_socket; // udp client socket |
44 extern NetworkUDPSocketHandler *_udp_client_socket; ///< udp client socket |
45 SOCKET _udp_server_socket; // udp server socket |
45 extern NetworkUDPSocketHandler *_udp_server_socket; ///< udp server socket |
46 SOCKET _udp_master_socket; // udp master socket |
46 extern NetworkUDPSocketHandler *_udp_master_socket; ///< udp master socket |
47 |
47 |
48 // Here we keep track of the clients |
48 // Here we keep track of the clients |
49 // (and the client uses [0] for his own communication) |
49 // (and the client uses [0] for his own communication) |
50 NetworkClientState _clients[MAX_CLIENTS]; |
50 NetworkClientState _clients[MAX_CLIENTS]; |
51 |
51 |
840 if (_network_server) { |
840 if (_network_server) { |
841 // We are a server, also close the listensocket |
841 // We are a server, also close the listensocket |
842 closesocket(_listensocket); |
842 closesocket(_listensocket); |
843 _listensocket = INVALID_SOCKET; |
843 _listensocket = INVALID_SOCKET; |
844 DEBUG(net, 1, "Closed listener"); |
844 DEBUG(net, 1, "Closed listener"); |
845 NetworkUDPStop(); |
845 NetworkUDPCloseAll(); |
846 } |
846 } |
847 } |
847 } |
848 |
848 |
849 // Inits the network (cleans sockets and stuff) |
849 // Inits the network (cleans sockets and stuff) |
850 static void NetworkInitialize(void) |
850 static void NetworkInitialize(void) |
956 |
956 |
957 ttd_strlcpy(_network_last_host, host, sizeof(_network_last_host)); |
957 ttd_strlcpy(_network_last_host, host, sizeof(_network_last_host)); |
958 _network_last_port = port; |
958 _network_last_port = port; |
959 |
959 |
960 NetworkDisconnect(); |
960 NetworkDisconnect(); |
961 NetworkUDPStop(); |
961 NetworkUDPCloseAll(); |
962 NetworkInitialize(); |
962 NetworkInitialize(); |
963 |
963 |
964 // Try to connect |
964 // Try to connect |
965 _networking = NetworkConnect(host, port); |
965 _networking = NetworkConnect(host, port); |
966 |
966 |
1032 NetworkInitialize(); |
1032 NetworkInitialize(); |
1033 if (!NetworkListen()) return false; |
1033 if (!NetworkListen()) return false; |
1034 |
1034 |
1035 // Try to start UDP-server |
1035 // Try to start UDP-server |
1036 _network_udp_server = true; |
1036 _network_udp_server = true; |
1037 _network_udp_server = NetworkUDPListen(&_udp_server_socket, _network_server_bind_ip, _network_server_port, false); |
1037 _network_udp_server = _udp_server_socket->Listen(_network_server_bind_ip, _network_server_port, false); |
1038 |
1038 |
1039 _network_server = true; |
1039 _network_server = true; |
1040 _networking = true; |
1040 _networking = true; |
1041 _frame_counter = 0; |
1041 _frame_counter = 0; |
1042 _frame_counter_server = 0; |
1042 _frame_counter_server = 0; |
1268 |
1268 |
1269 // We have to do some UDP checking |
1269 // We have to do some UDP checking |
1270 void NetworkUDPGameLoop(void) |
1270 void NetworkUDPGameLoop(void) |
1271 { |
1271 { |
1272 if (_network_udp_server) { |
1272 if (_network_udp_server) { |
1273 NetworkUDPReceive(_udp_server_socket); |
1273 _udp_server_socket->ReceivePackets(); |
1274 if (_udp_master_socket != INVALID_SOCKET) { |
1274 _udp_master_socket->ReceivePackets(); |
1275 NetworkUDPReceive(_udp_master_socket); |
1275 } else { |
1276 } |
1276 _udp_client_socket->ReceivePackets(); |
1277 } else if (_udp_client_socket != INVALID_SOCKET) { |
|
1278 NetworkUDPReceive(_udp_client_socket); |
|
1279 if (_network_udp_broadcast > 0) _network_udp_broadcast--; |
1277 if (_network_udp_broadcast > 0) _network_udp_broadcast--; |
1280 } |
1278 } |
1281 } |
1279 } |
1282 |
1280 |
1283 // The main loop called from ttd.c |
1281 // The main loop called from ttd.c |
1388 |
1386 |
1389 /** This shuts the network down */ |
1387 /** This shuts the network down */ |
1390 void NetworkShutDown(void) |
1388 void NetworkShutDown(void) |
1391 { |
1389 { |
1392 NetworkDisconnect(); |
1390 NetworkDisconnect(); |
1393 NetworkUDPStop(); |
1391 NetworkUDPShutdown(); |
1394 |
1392 |
1395 DEBUG(net, 3, "[core] shutting down network"); |
1393 DEBUG(net, 3, "[core] shutting down network"); |
1396 |
1394 |
1397 _network_available = false; |
1395 _network_available = false; |
1398 |
1396 |