diff options
| author | Fynn Godau | 2025-12-28 17:38:40 +0000 |
|---|---|---|
| committer | stuebinm | 2026-01-01 19:44:11 +0100 |
| commit | dabe335b06145f39ea36f4841459cbf5c213be14 (patch) | |
| tree | b0cde923fce39abc07b52857574b91d5314e8dd1 /app | |
| parent | 7833a4ba758a7cf9b2534da1434f1070abcad577 (diff) | |
bahnhof-dns: improved configuration options
Diffstat (limited to 'app')
| -rw-r--r-- | app/BahnhofDNS.hs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/app/BahnhofDNS.hs b/app/BahnhofDNS.hs index 1b06dc1..b4f1988 100644 --- a/app/BahnhofDNS.hs +++ b/app/BahnhofDNS.hs @@ -11,9 +11,19 @@ import Util mkByteString :: String -> ByteString mkByteString = TSE.encodeUtf8 . Data.Text.pack +-- | name that the nameserver will run on ourName :: ByteString ourName = mkByteString "ns.fynngodau.de." +-- | +-- Nothing to bind anywhere (*:53) +-- recommended: set to your public IP address if running in parallel to a proper local resolver +bindAddress :: Maybe String +bindAddress = Just "2003:a:1525:3967::2" + +bindPort :: String +bindPort = "53" + servedName :: ByteString servedName = mkByteString "bahnhof.fynngodau.de." @@ -26,6 +36,7 @@ soa = ResourceRecord servedName SOA classIN 86400 $ RD_SOA 7200 -- retry 3600000 -- expire 3600 -- minttl +-- CONFIGURE UP TO HERE -- ns :: ResourceRecord ns = ResourceRecord servedName NS classIN 86400 $ RD_NS ourName @@ -34,10 +45,10 @@ ns = ResourceRecord servedName NS classIN 86400 $ RD_NS ourName main :: IO () main = do -- general structure like sample code at https://book.realworldhaskell.org/read/sockets-and-syslog.html (for UDP server) staticData <- readData - addr : _ <- getAddrInfo (Just defaultHints { addrSocketType = Datagram, addrFamily = AF_INET6, addrFlags = [AI_PASSIVE] }) Nothing (Just "5300") + addr : _ <- getAddrInfo (Just defaultHints { addrSocketType = Datagram, addrFlags = [AI_PASSIVE] }) bindAddress (Just bindPort) sckt <- openSocket addr bind sckt (addrAddress addr) - putStrLn "Starting DNS server (listening on port 5300)" + putStrLn $ "Starting DNS server (listening on port " ++ bindPort ++ ")" procMessages staticData sckt where procMessages staticData sckt = do |
