using System.Net;
using System.Net.Sockets;

namespace Dada.Supervisor;

internal static class LoopbackPortGuard
{
    internal static SupervisorState Check()
    {
        try
        {
            using var listener = new TcpListener(IPAddress.Parse(LoopbackEndpoint.Host), LoopbackEndpoint.Port);
            listener.Start();
            return SupervisorState.Starting;
        }
        catch (SocketException)
        {
            return SupervisorState.PortInUse;
        }
    }
}
