/// <inheritdoc/> public async Task <GrpcGetNatReply> GetNatByNameSubnet(GrpcGetNatBySubnetRequest request, CallContext context = default) { await SyncContext.Clear; try { return(new GrpcGetNatReply(nat: hyperv.GetNatBySubnet(request.Subnet).ToProto())); } catch (Exception e) { return(new GrpcGetNatReply(e)); } }
/// <summary> /// Looks for a virtual NAT by subnet. /// </summary> /// <param name="subnet">The desired NAT subnet.</param> /// <returns>The <see cref="VirtualNat"/> or <c>null</c> if the NAT doesn't exist.</returns> public VirtualNat GetNatBySubnet(string subnet) { if (isAdmin) { return(hypervClient.GetNatBySubnet(subnet: subnet)); } else { var request = new GrpcGetNatBySubnetRequest(subnet: subnet); var reply = desktopService.GetNatByNameSubnet(request).Result; reply.Error.EnsureSuccess(); return(reply.Nat.ToLocal()); } }