public void Dispose() { if (_server != null) { _server.Dispose(); _server = null; } }
public void Stop() { _server.Dispose(); ConfigureService(); InitState(_options.Value.DefaultState); _logger.LogInformation("Service has been stopped"); }
protected virtual void Dispose(bool disposing) { if (!_disposed) { if (disposing) { _server?.Dispose(); _disposed = true; } } }
private async static Task Create(IRequestResolver requestResolver, Func <DnsServer, Task> action) { TaskCompletionSource <object> tcs = new TaskCompletionSource <object>(); DnsServer server = new DnsServer(requestResolver); server.Listening += async() => { try { await action(server); tcs.SetResult(null); } catch (Exception e) { tcs.SetException(e); } finally { server.Dispose(); } }; await Task.WhenAll(server.Listen(PORT), tcs.Task); }
public async static Task MainAsync() { MasterFile masterFile = new MasterFile(); DnsServer server = new DnsServer(masterFile, "8.8.8.8"); masterFile.AddIPAddressResourceRecord("google.com", "127.0.0.1"); server.Requested += (request) => Console.WriteLine("Requested: {0}", request); server.Responded += (request, response) => Console.WriteLine("Responded: {0} => {1}", request, response); server.Errored += (e) => Console.WriteLine("Errored: {0}", e.Message); server.Listening += () => Console.WriteLine("Listening"); server.Listening += async() => { DnsClient client = new DnsClient("127.0.0.1", PORT); await client.Lookup("google.com"); await client.Lookup("cnn.com"); server.Dispose(); }; await server.Listen(PORT); }
public async static Task MainAsync() { DnsServer server = new DnsServer("8.8.8.8"); server.Requested += (request) => Console.WriteLine("Requested: {0}", request); server.Responded += (request, response) => Console.WriteLine("Responded: {0} => {1}", request, response); server.Errored += (e) => Console.WriteLine("Errored: {0}", e.Message); server.MasterFile.AddIPAddressResourceRecord("google.com", "127.0.0.1"); #pragma warning disable 4014 server.Listen(PORT); #pragma warning restore 4014 await Task.Delay(1000); DnsClient client = new DnsClient("127.0.0.1", PORT); await client.Lookup("google.com"); await client.Lookup("cnn.com"); server.Dispose(); }
public static void Dispose() { _server.Dispose(); }
protected override void OnStop() { _server.Dispose(); }
private void stopServer() { server.Dispose(); }
public async Task StopAsync(CancellationToken cancellationToken) { _logger.LogInformation("Stopping DNS server"); _dnsServer.Dispose(); }
private static void Main(string[] args) { WriteHeader(); var tldCollection = new TldCollection(); Console.Write("Fetching TLD list..."); while (!tldCollection.IsReady) { Thread.Sleep(100); } Console.WriteLine($"success ({tldCollection.Count} items)."); Console.WriteLine(); bool logRequests = false; var requestResolver = new RequestResolver("httpcheck.singulink.com", "admin.singulink.com", tldCollection); requestResolver.AddPermanentRecord("singulink.com", true); requestResolver.RequestReceived += (s, e) => { if (logRequests) { var now = DateTime.Now; Console.WriteLine($"{now.ToShortDateString()} {now.ToShortTimeString()} REQ {e.Id} {e.RequestDomain} {e.EmailDomain}"); } }; requestResolver.ResponseSent += (s, e) => { if (logRequests) { var now = DateTime.Now; Console.WriteLine($"{now.ToShortDateString()} {now.ToShortTimeString()} RES {e.Id} {e.RequestDomain} {e.Result} {(int)e.Ttl.TotalSeconds}"); } }; var dnsServer = new DnsServer(requestResolver); RunDnsServer(dnsServer); Console.WriteLine("DNS Server started. Press D to toggle debug, C to clear window, or X to exit."); while (true) { var key = Console.ReadKey(true); if (key.Key == ConsoleKey.D) { logRequests = !logRequests; Console.WriteLine($"Request logging: {logRequests}"); } else if (key.Key == ConsoleKey.C) { Console.Clear(); WriteHeader(); } else if (key.Key == ConsoleKey.X) { break; } } Console.Write("Shutting down DNS Server..."); dnsServer.Dispose(); tldCollection.Dispose(); Thread.Sleep(1000); Console.WriteLine("done."); }
public Task StopAsync(CancellationToken cancellationToken) { _logger.LogInformation(("Dns server is stopping.")); _server.Dispose(); return(_listenTask); }