Exemplo n.º 1
0
 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));
 }
Exemplo n.º 2
0
    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));
    }
Exemplo n.º 3
0
    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));
    }
Exemplo n.º 4
0
 public static async Task <IPAddress> GetExternalIpAsync()
 {
     return(await MonoNatHelper.GetFirstAsync(async d => await d.GetExternalIPAsync().ConfigureAwait(false)).ConfigureAwait(false));
 }