diff --git a/PrivateWin10/App.xaml.cs b/PrivateWin10/App.xaml.cs index f4a5c54..6555a05 100644 --- a/PrivateWin10/App.xaml.cs +++ b/PrivateWin10/App.xaml.cs @@ -235,6 +235,7 @@ public static void Main(string[] args) else if (conRes == -1) { MessageBox.Show(Translate.fmt("msg_dupliate_session", Title), Title); + client.Close(); return; // no point in cintinuing without admin rights or an already running engine } } diff --git a/PrivateWin10/Core/WindowsFirewall/FirewallRule.cs b/PrivateWin10/Core/WindowsFirewall/FirewallRule.cs index 01363cf..de87f4f 100644 --- a/PrivateWin10/Core/WindowsFirewall/FirewallRule.cs +++ b/PrivateWin10/Core/WindowsFirewall/FirewallRule.cs @@ -451,7 +451,7 @@ public static bool MatchPort(UInt16 numPort, string strPorts) { UInt16 beginPort = 0; UInt16 endPort = 0; - if (UInt16.TryParse(strTemp[0], out beginPort) && UInt16.TryParse(strTemp[0], out endPort)) + if (UInt16.TryParse(strTemp[0], out beginPort) && UInt16.TryParse(strTemp[1], out endPort)) { if (beginPort <= numPort && numPort <= endPort) return true; @@ -605,4 +605,4 @@ public static string GetSpecialNet(string SubNet, NetworkMonitor.AdapterInfo Nic return string.Join(",", IpRanges.ToArray()); } } -} \ No newline at end of file +} diff --git a/PrivateWin10/Core/WindowsFirewall/WinNetFwAPI.cs b/PrivateWin10/Core/WindowsFirewall/WinNetFwAPI.cs index cc53225..c08dc9c 100644 --- a/PrivateWin10/Core/WindowsFirewall/WinNetFwAPI.cs +++ b/PrivateWin10/Core/WindowsFirewall/WinNetFwAPI.cs @@ -83,11 +83,11 @@ public RuleCompat(ushort fwApiVersion) case (ushort)FW_BINARY_VERSION.FW_BINARY_VERSION_WIN8: case (ushort)FW_BINARY_VERSION.FW_BINARY_VERSION_WIN10: Size = (int)Marshal.OffsetOf(typeof(FW_RULE), "OnNetworkNames"); break; - - case (ushort)FW_BINARY_VERSION.FW_BINARY_VERSION_THRESHOLD: Size = (int)Marshal.OffsetOf(typeof(FW_RULE), "wFlags2"); break; - case (ushort)FW_BINARY_VERSION.FW_BINARY_VERSION_THRESHOLD2: Size = (int)Marshal.OffsetOf(typeof(FW_RULE), "RemoteOutServerNames"); break; - case (ushort)FW_BINARY_VERSION.FW_BINARY_VERSION_REDSTONE1: Size = (int)Marshal.OffsetOf(typeof(FW_RULE), "wszFqbn"); break; - + + case (ushort)FW_BINARY_VERSION.FW_BINARY_VERSION_THRESHOLD: Size = (int)Marshal.OffsetOf(typeof(FW_RULE), "wFlags2"); break; + case (ushort)FW_BINARY_VERSION.FW_BINARY_VERSION_THRESHOLD2: Size = (int)Marshal.OffsetOf(typeof(FW_RULE), "RemoteOutServerNames"); break; + case (ushort)FW_BINARY_VERSION.FW_BINARY_VERSION_REDSTONE1: Size = (int)Marshal.OffsetOf(typeof(FW_RULE), "wszFqbn"); break; + //case (ushort)FW_BINARY_VERSION.FW_BINARY_VERSION_170x: //case (ushort)FW_BINARY_VERSION.FW_BINARY_VERSION_180x: //case (ushort)FW_BINARY_VERSION.FW_BINARY_VERSION_19Hx: @@ -806,7 +806,7 @@ private static FW_PORTS MakePortsArray(string portsStr, ref List handl { ushort begin; ushort end; - if (ushort.TryParse(portStr, out begin) && ushort.TryParse(portStr, out end)) + if (ushort.TryParse(portRange[0], out begin) && ushort.TryParse(portRange[1], out end)) { portRanges.Add(new PortRange() { @@ -838,7 +838,7 @@ private static FW_PORTS MakePortsArray(string portsStr, ref List handl portRangeArray[i].uEnd = portRanges[i].End; } - ports.Ports.dwNumEntries = (ushort)portList.Count; + ports.Ports.dwNumEntries = (ushort)portRanges.Count; handles.Add(GCHandle.Alloc(portRangeArray, GCHandleType.Pinned)); ports.Ports.pPorts = Marshal.UnsafeAddrOfPinnedArrayElement(portRangeArray, 0); }