From 2a9d7f46ed091fd56b40684ab5b74366dd27570a Mon Sep 17 00:00:00 2001 From: AliveDevil Date: Mon, 27 Jan 2025 00:02:07 +0100 Subject: [PATCH] Listen on HTTP port and PowerDns socket --- src/pdns-dhcp/Program.cs | 37 ++-------------------- src/pdns-dhcp/appsettings.Development.json | 7 ++++ src/pdns-dhcp/appsettings.json | 7 ++++ 3 files changed, 17 insertions(+), 34 deletions(-) diff --git a/src/pdns-dhcp/Program.cs b/src/pdns-dhcp/Program.cs index c7b4a15..f28d42d 100644 --- a/src/pdns-dhcp/Program.cs +++ b/src/pdns-dhcp/Program.cs @@ -1,15 +1,10 @@ -using System.Net; -using System.Net.Sockets; - -using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Connections; using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; -using pdns_dhcp.Connections; using pdns_dhcp.Dhcp; using pdns_dhcp.Dns; using pdns_dhcp.Kea; @@ -32,32 +27,6 @@ builder.Services.AddSingleton(); builder.Services.AddDhcpWatcherFactory(); builder.Services.AddKeaFactory(); -builder.Services.Configure(options => -{ - options.CreateBoundListenSocket = endpoint => - { - Socket socket; - switch (endpoint) - { - case ProtocolSocketIPEndPoint socketIp: - socket = new Socket(socketIp.AddressFamily, socketIp.SocketType, socketIp.ProtocolType); - - if (socketIp.Address.Equals(IPAddress.IPv6Any)) - { - socket.DualMode = true; - } - - break; - - default: - return SocketTransportOptions.CreateDefaultBoundListenSocket(endpoint); - } - - socket.Bind(endpoint); - return socket; - }; -}); - builder.WebHost.ConfigureKestrel((context, options) => { bool isSystemd = false; @@ -66,14 +35,14 @@ builder.WebHost.ConfigureKestrel((context, options) => isSystemd = true; options.UseConnectionHandler(); }); - + if (!isSystemd && context.Configuration.GetRequiredSection("PowerDns:Listener").Get() is { } pdnsOptions) { var path = PathEx.ExpandPath(pdnsOptions.Socket); FileInfo file = new(path); file.Directory!.Create(); file.Delete(); - options.ListenUnixSocket(path, options => + options.ConfigurationLoader!.UnixSocketEndpoint(path, options => { options.UseConnectionHandler(); }); diff --git a/src/pdns-dhcp/appsettings.Development.json b/src/pdns-dhcp/appsettings.Development.json index a2fbe6c..d3517a4 100644 --- a/src/pdns-dhcp/appsettings.Development.json +++ b/src/pdns-dhcp/appsettings.Development.json @@ -13,5 +13,12 @@ "Listener": { "Socket": "${XDG_RUNTIME_DIR}/pdns-dhcp/pdns.sock" } + }, + "Kestrel": { + "Endpoints": { + "Http":{ + "Url": "http://[::1]:5000" + } + } } } \ No newline at end of file diff --git a/src/pdns-dhcp/appsettings.json b/src/pdns-dhcp/appsettings.json index bda961c..ebabca2 100644 --- a/src/pdns-dhcp/appsettings.json +++ b/src/pdns-dhcp/appsettings.json @@ -14,5 +14,12 @@ "Listener": { "Socket": "/run/pdns-dhcp/pdns.sock" } + }, + "Kestrel": { + "Endpoints": { + "Http":{ + "Url": "http://[::]:80" + } + } } } \ No newline at end of file