Skip to content

Commit

Permalink
handle culture problems
Browse files Browse the repository at this point in the history
  • Loading branch information
in0finite committed Apr 3, 2022
1 parent e175541 commit e0696f7
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions NetworkDiscovery.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using System.Net.NetworkInformation;
using UnityEngine.Profiling;
using UnityEngine.SceneManagement;
using System.Globalization;

namespace NetworkDiscoveryUnity
{
Expand All @@ -27,14 +28,22 @@ public DiscoveryInfo (IPEndPoint endPoint, Dictionary<string, string> keyValuePa
m_timeWhenReceived = Time.realtimeSinceStartup;
}

public ushort GetGameServerPort() => ushort.Parse(this.KeyValuePairs[kPortKey]);
}
public ushort GetGameServerPort() => ushort.Parse(this.KeyValuePairs[kPortKey], CultureInfo.InvariantCulture);

public bool TryGetGameServerPort(out ushort port)
{
port = 0;
return this.KeyValuePairs.TryGetValue(kPortKey, out string portString)
&& ushort.TryParse(portString, NumberStyles.None, CultureInfo.InvariantCulture, out port);
}
}

public UnityEngine.Events.UnityEvent<DiscoveryInfo> onReceivedServerResponse =
new UnityEngine.Events.UnityEvent<DiscoveryInfo>();

// server sends this data as a response to broadcast
readonly Dictionary<string, string> m_responseData = new Dictionary<string, string> ();
readonly Dictionary<string, string> m_responseData =
new Dictionary<string, string> (System.StringComparer.InvariantCulture);

public static NetworkDiscovery Instance { get ; private set ; }

Expand All @@ -60,7 +69,7 @@ void Awake ()
Instance = this;

RegisterResponseData(kSignatureKey, GetCachedSignature());
RegisterResponseData(kPortKey, this.gameServerPortNumber.ToString());
RegisterResponseData(kPortKey, this.gameServerPortNumber.ToString(CultureInfo.InvariantCulture));
RegisterResponseData(kMapNameKey, SceneManager.GetActiveScene().name);
}

Expand Down Expand Up @@ -208,7 +217,7 @@ void UpdateClient()
public static byte[] GetDiscoveryRequestData()
{
Profiler.BeginSample("ConvertDictionaryToByteArray");
var dict = new Dictionary<string, string>() {{kSignatureKey, GetCachedSignature()}};
var dict = new Dictionary<string, string>(System.StringComparer.InvariantCulture) {{kSignatureKey, GetCachedSignature()}};
byte[] buffer = ConvertDictionaryToByteArray (dict);
Profiler.EndSample();

Expand Down Expand Up @@ -458,7 +467,7 @@ public static string ConvertDictionaryToString( Dictionary<string, string> dict

public static Dictionary<string, string> ConvertStringToDictionary( string str )
{
var dict = new Dictionary<string, string>();
var dict = new Dictionary<string, string>(System.StringComparer.InvariantCulture);
string[] lines = str.Split("\n".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries);
foreach(string line in lines)
{
Expand Down

0 comments on commit e0696f7

Please sign in to comment.