#region Usings using Mono.Nat; using System; #endregion #region NetFuncs public static class NetFuncs { public static void InitUPnP(EventHandler DeviceFound, EventHandler DeviceLost) { if (GlobalVars.UserConfiguration.UPnP) { NatUtility.DeviceFound += DeviceFound; NatUtility.DeviceLost += DeviceLost; NatUtility.StartDiscovery(); } } public static void StartUPnP(INatDevice device, Protocol protocol, int port) { if (GlobalVars.UserConfiguration.UPnP) { Mapping checker = device.GetSpecificMapping(protocol, port); int mapPublic = checker.PublicPort; int mapPrivate = checker.PrivatePort; if (mapPublic == -1 && mapPrivate == -1) { Mapping portmap = new Mapping(protocol, port, port); portmap.Description = "Novetus"; device.CreatePortMap(portmap); } } } public static void StopUPnP(INatDevice device, Protocol protocol, int port) { if (GlobalVars.UserConfiguration.UPnP) { Mapping checker = device.GetSpecificMapping(protocol, port); int mapPublic = checker.PublicPort; int mapPrivate = checker.PrivatePort; if (mapPublic != -1 && mapPrivate != -1) { Mapping portmap = new Mapping(protocol, port, port); portmap.Description = "Novetus"; device.DeletePortMap(portmap); } } } } #endregion