added -ip so you are able to specify which ip to bind the server
This commit is contained in:
@@ -12,6 +12,7 @@ using System.Reflection;
|
||||
using System.Threading;
|
||||
using System.Xml.Linq;
|
||||
using MoonSharp.Interpreter;
|
||||
using System.Net;
|
||||
|
||||
namespace Barotrauma
|
||||
{
|
||||
@@ -221,6 +222,7 @@ namespace Barotrauma
|
||||
int maxPlayers = 10;
|
||||
int? ownerKey = null;
|
||||
UInt64 steamId = 0;
|
||||
IPAddress listenIp = IPAddress.Any;
|
||||
|
||||
XDocument doc = XMLExtensions.TryLoadXml(ServerSettings.SettingsFile);
|
||||
if (doc?.Root == null)
|
||||
@@ -254,6 +256,12 @@ namespace Barotrauma
|
||||
name = CommandLineArgs[i + 1];
|
||||
i++;
|
||||
break;
|
||||
case "-ip":
|
||||
if (IPAddress.TryParse(CommandLineArgs[i + 1], out IPAddress address))
|
||||
listenIp = address;
|
||||
else
|
||||
DebugConsole.ThrowError($"Invalid Ip Address '{CommandLineArgs[i + 1]}'.");
|
||||
break;
|
||||
case "-port":
|
||||
int.TryParse(CommandLineArgs[i + 1], out port);
|
||||
i++;
|
||||
@@ -302,6 +310,7 @@ namespace Barotrauma
|
||||
|
||||
Server = new GameServer(
|
||||
name,
|
||||
listenIp,
|
||||
port,
|
||||
queryPort,
|
||||
publiclyVisible,
|
||||
|
||||
@@ -12,6 +12,7 @@ using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Xml.Linq;
|
||||
using MoonSharp.Interpreter;
|
||||
using System.Net;
|
||||
|
||||
namespace Barotrauma.Networking
|
||||
{
|
||||
@@ -114,7 +115,7 @@ namespace Barotrauma.Networking
|
||||
private readonly int? ownerKey;
|
||||
private readonly UInt64? ownerSteamId;
|
||||
|
||||
public GameServer(string name, int port, int queryPort = 0, bool isPublic = false, string password = "", bool attemptUPnP = false, int maxPlayers = 10, int? ownKey = null, UInt64? steamId = null)
|
||||
public GameServer(string name, IPAddress listenIp, int port, int queryPort = 0, bool isPublic = false, string password = "", bool attemptUPnP = false, int maxPlayers = 10, int? ownKey = null, UInt64? steamId = null)
|
||||
{
|
||||
name = name.Replace(":", "");
|
||||
name = name.Replace(";", "");
|
||||
@@ -127,7 +128,7 @@ namespace Barotrauma.Networking
|
||||
|
||||
LastClientListUpdateID = 0;
|
||||
|
||||
serverSettings = new ServerSettings(this, name, port, queryPort, maxPlayers, isPublic, attemptUPnP);
|
||||
serverSettings = new ServerSettings(this, name, port, queryPort, maxPlayers, isPublic, attemptUPnP, listenIp);
|
||||
KarmaManager.SelectPreset(serverSettings.KarmaPreset);
|
||||
serverSettings.SetPassword(password);
|
||||
|
||||
|
||||
@@ -37,7 +37,8 @@ namespace Barotrauma.Networking
|
||||
AutoExpandMTU = false,
|
||||
MaximumConnections = NetConfig.MaxPlayers * 2,
|
||||
EnableUPnP = serverSettings.EnableUPnP,
|
||||
Port = serverSettings.Port
|
||||
Port = serverSettings.Port,
|
||||
LocalAddress = serverSettings.ListenIPAddress
|
||||
};
|
||||
|
||||
netPeerConfiguration.DisableMessageType(NetIncomingMessageType.DebugMessage |
|
||||
|
||||
@@ -16,7 +16,8 @@ namespace Barotrauma.Steam
|
||||
{
|
||||
GamePort = (ushort)server.Port,
|
||||
QueryPort = isPublic ? (ushort)server.QueryPort : (ushort)0,
|
||||
Mode = isPublic ? Steamworks.InitServerMode.Authentication : Steamworks.InitServerMode.NoAuthentication
|
||||
Mode = isPublic ? Steamworks.InitServerMode.Authentication : Steamworks.InitServerMode.NoAuthentication,
|
||||
IpAddress = server.ServerSettings.ListenIPAddress
|
||||
};
|
||||
//options.QueryShareGamePort();
|
||||
|
||||
|
||||
@@ -273,7 +273,7 @@ namespace Barotrauma.Networking
|
||||
|
||||
partial void InitProjSpecific();
|
||||
|
||||
public ServerSettings(NetworkMember networkMember, string serverName, int port, int queryPort, int maxPlayers, bool isPublic, bool enableUPnP)
|
||||
public ServerSettings(NetworkMember networkMember, string serverName, int port, int queryPort, int maxPlayers, bool isPublic, bool enableUPnP, IPAddress listenIp)
|
||||
{
|
||||
ServerLog = new ServerLog(serverName);
|
||||
|
||||
@@ -288,6 +288,7 @@ namespace Barotrauma.Networking
|
||||
InitProjSpecific();
|
||||
|
||||
ServerName = serverName;
|
||||
ListenIPAddress = listenIp;
|
||||
Port = port;
|
||||
QueryPort = queryPort;
|
||||
EnableUPnP = enableUPnP;
|
||||
@@ -359,6 +360,8 @@ namespace Barotrauma.Networking
|
||||
|
||||
public int QueryPort;
|
||||
|
||||
public IPAddress ListenIPAddress;
|
||||
|
||||
public bool EnableUPnP;
|
||||
|
||||
public ServerLog ServerLog;
|
||||
|
||||
Reference in New Issue
Block a user