diff options
author | truelight <truelight@openttd.org> | 2004-12-13 17:47:21 +0000 |
---|---|---|
committer | truelight <truelight@openttd.org> | 2004-12-13 17:47:21 +0000 |
commit | 9ced62e239c6ff424659cc1151632766d366da20 (patch) | |
tree | 01af336ac91325c4ce99a24b1968cfe7078c5e6b /network.c | |
parent | 382b924b41f1448ef5a843fd6ce07d31415afb99 (diff) | |
download | openttd-9ced62e239c6ff424659cc1151632766d366da20.tar.xz |
(svn r1059) -Fix: [Console] Renamed 'set port' to 'set server_port'
-Add: [Network] Add ip-bind ('set server_bind_ip <ip>' in console or use
scripts/pre_dedicated.scr)
Diffstat (limited to 'network.c')
-rw-r--r-- | network.c | 15 |
1 files changed, 12 insertions, 3 deletions
@@ -623,7 +623,7 @@ bool NetworkListen(void) port = _network_server_port; - DEBUG(net, 1) ("[NET] Listening on port %d", port); + DEBUG(net, 1) ("[NET] Listening on %s:%d", _network_server_bind_ip_host, port); ls = socket(AF_INET, SOCK_STREAM, 0); if (ls == INVALID_SOCKET) { @@ -652,7 +652,7 @@ bool NetworkListen(void) } sin.sin_family = AF_INET; - sin.sin_addr.s_addr = 0; + sin.sin_addr.s_addr = _network_server_bind_ip; sin.sin_port = htons(port); if (bind(ls, (struct sockaddr*)&sin, sizeof(sin)) != 0) { @@ -841,13 +841,17 @@ bool NetworkServerStart(void) { if (!_network_available) return false; + /* Call the pre-scripts */ + IConsoleCmdExec("exec scripts/pre_server.scr 0"); + if (_network_dedicated) IConsoleCmdExec("exec scripts/pre_dedicated.scr 0"); + NetworkInitialize(); if (!NetworkListen()) return false; // Try to start UDP-server _network_udp_server = true; - _network_udp_server = NetworkUDPListen(0, _network_server_port); + _network_udp_server = NetworkUDPListen(_network_server_bind_ip, _network_server_port); _network_server = true; _networking = true; @@ -1157,6 +1161,11 @@ void NetworkStartUp(void) _network_available = true; _network_dedicated = false; + /* Load the ip from the openttd.cfg */ + _network_server_bind_ip = inet_addr(_network_server_bind_ip_host); + /* And put the data back in it in case it was an invalid ip */ + snprintf(_network_server_bind_ip_host, sizeof(_network_server_bind_ip_host), "%s", inet_ntoa(*(struct in_addr *)&_network_server_bind_ip)); + /* Generate an unique id when there is none yet */ if (_network_unique_id[0] == '\0') NetworkGenerateUniqueId(); |