public static async Task <Mapping> GetPortMappingAsync(ushort port, Protocol protocol) { return(await MonoNatHelper.GetFirstAsync(async d => { try { return await d.GetSpecificMappingAsync(protocol, port).ConfigureAwait(false); } catch (Exception) { return null; } }).ConfigureAwait(false)); }
public static async Task <bool> DeletePortMappingAsync(ushort port, Protocol protocol) { Mapping mapping = new(protocol, port, port); return(await MonoNatHelper.GetFirstAsync(async d => { try { return await d.DeletePortMapAsync(mapping).ConfigureAwait(false) != null; } catch (MappingException) { return false; } }).ConfigureAwait(false)); }
public static async Task <bool> AddPortMappingAsync(ushort port, Protocol protocol) { Mapping mapping = new(protocol, port, port); return(await MonoNatHelper.GetFirstAsync(async d => await d.CreatePortMapAsync(mapping).ConfigureAwait(false) != null).ConfigureAwait(false)); }
public static async Task <IPAddress> GetExternalIpAsync() { return(await MonoNatHelper.GetFirstAsync(async d => await d.GetExternalIPAsync().ConfigureAwait(false)).ConfigureAwait(false)); }