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.Threading;
|
||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
using MoonSharp.Interpreter;
|
using MoonSharp.Interpreter;
|
||||||
|
using System.Net;
|
||||||
|
|
||||||
namespace Barotrauma
|
namespace Barotrauma
|
||||||
{
|
{
|
||||||
@@ -221,6 +222,7 @@ namespace Barotrauma
|
|||||||
int maxPlayers = 10;
|
int maxPlayers = 10;
|
||||||
int? ownerKey = null;
|
int? ownerKey = null;
|
||||||
UInt64 steamId = 0;
|
UInt64 steamId = 0;
|
||||||
|
IPAddress listenIp = IPAddress.Any;
|
||||||
|
|
||||||
XDocument doc = XMLExtensions.TryLoadXml(ServerSettings.SettingsFile);
|
XDocument doc = XMLExtensions.TryLoadXml(ServerSettings.SettingsFile);
|
||||||
if (doc?.Root == null)
|
if (doc?.Root == null)
|
||||||
@@ -254,6 +256,12 @@ namespace Barotrauma
|
|||||||
name = CommandLineArgs[i + 1];
|
name = CommandLineArgs[i + 1];
|
||||||
i++;
|
i++;
|
||||||
break;
|
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":
|
case "-port":
|
||||||
int.TryParse(CommandLineArgs[i + 1], out port);
|
int.TryParse(CommandLineArgs[i + 1], out port);
|
||||||
i++;
|
i++;
|
||||||
@@ -302,6 +310,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
Server = new GameServer(
|
Server = new GameServer(
|
||||||
name,
|
name,
|
||||||
|
listenIp,
|
||||||
port,
|
port,
|
||||||
queryPort,
|
queryPort,
|
||||||
publiclyVisible,
|
publiclyVisible,
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ using System.Linq;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
using MoonSharp.Interpreter;
|
using MoonSharp.Interpreter;
|
||||||
|
using System.Net;
|
||||||
|
|
||||||
namespace Barotrauma.Networking
|
namespace Barotrauma.Networking
|
||||||
{
|
{
|
||||||
@@ -114,7 +115,7 @@ namespace Barotrauma.Networking
|
|||||||
private readonly int? ownerKey;
|
private readonly int? ownerKey;
|
||||||
private readonly UInt64? ownerSteamId;
|
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(":", "");
|
||||||
name = name.Replace(";", "");
|
name = name.Replace(";", "");
|
||||||
@@ -127,7 +128,7 @@ namespace Barotrauma.Networking
|
|||||||
|
|
||||||
LastClientListUpdateID = 0;
|
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);
|
KarmaManager.SelectPreset(serverSettings.KarmaPreset);
|
||||||
serverSettings.SetPassword(password);
|
serverSettings.SetPassword(password);
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -37,7 +37,8 @@ namespace Barotrauma.Networking
|
|||||||
AutoExpandMTU = false,
|
AutoExpandMTU = false,
|
||||||
MaximumConnections = NetConfig.MaxPlayers * 2,
|
MaximumConnections = NetConfig.MaxPlayers * 2,
|
||||||
EnableUPnP = serverSettings.EnableUPnP,
|
EnableUPnP = serverSettings.EnableUPnP,
|
||||||
Port = serverSettings.Port
|
Port = serverSettings.Port,
|
||||||
|
LocalAddress = serverSettings.ListenIPAddress
|
||||||
};
|
};
|
||||||
|
|
||||||
netPeerConfiguration.DisableMessageType(NetIncomingMessageType.DebugMessage |
|
netPeerConfiguration.DisableMessageType(NetIncomingMessageType.DebugMessage |
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ namespace Barotrauma.Steam
|
|||||||
{
|
{
|
||||||
GamePort = (ushort)server.Port,
|
GamePort = (ushort)server.Port,
|
||||||
QueryPort = isPublic ? (ushort)server.QueryPort : (ushort)0,
|
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();
|
//options.QueryShareGamePort();
|
||||||
|
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ namespace Barotrauma.Networking
|
|||||||
|
|
||||||
partial void InitProjSpecific();
|
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);
|
ServerLog = new ServerLog(serverName);
|
||||||
|
|
||||||
@@ -288,6 +288,7 @@ namespace Barotrauma.Networking
|
|||||||
InitProjSpecific();
|
InitProjSpecific();
|
||||||
|
|
||||||
ServerName = serverName;
|
ServerName = serverName;
|
||||||
|
ListenIPAddress = listenIp;
|
||||||
Port = port;
|
Port = port;
|
||||||
QueryPort = queryPort;
|
QueryPort = queryPort;
|
||||||
EnableUPnP = enableUPnP;
|
EnableUPnP = enableUPnP;
|
||||||
@@ -359,6 +360,8 @@ namespace Barotrauma.Networking
|
|||||||
|
|
||||||
public int QueryPort;
|
public int QueryPort;
|
||||||
|
|
||||||
|
public IPAddress ListenIPAddress;
|
||||||
|
|
||||||
public bool EnableUPnP;
|
public bool EnableUPnP;
|
||||||
|
|
||||||
public ServerLog ServerLog;
|
public ServerLog ServerLog;
|
||||||
|
|||||||
Reference in New Issue
Block a user