+cabal-version: 3.0
name: haeredes
-version: 0.0
-cabal-version: >= 1.8
+version: 0.5.4
author: Michael Orlitzky
-maintainer: Michael Orlitzky <michael@orlitzky.com>
-license: GPL-3
+maintainer: Michael Orlitzky <michael@orlitzky.com>
+license: AGPL-3.0-or-later
license-file: doc/LICENSE
-homepage: http://michael.orlitzky.com/code/haeredes.php
+homepage: https://michael.orlitzky.com/code/haeredes.xhtml
bug-reports: mailto:michael@orlitzky.com
category: DNS, Utils
+build-type: Simple
+extra-source-files:
+ doc/COPYING
+ doc/man1/haeredes.1
+ test/shell/*.test
synopsis:
Confirm delegation of NS and MX records.
-build-type: Simple
+description:
+ Haeredes is primarily useful for ISP network administrators.
+ Customers will occasionally decide to switch hosts without alerting
+ the current host; this can cause two problems:
+
+ * With NS records, the previous host (at the very least) keeps
+ hosting a DNS zone that does nothing. If that host uses their
+ authoritative nameserver as a caching lookup server as well, it
+ may return incorrect results to queries about the domain in
+ question.
+
+ * For MX records, the situation is slightly worse. Most mail servers
+ will immediately accept mail for which the server thinks it is the
+ ultimate destination. If a mail server is configured as the
+ destination for a domain, but it is not the MX for that domain,
+ then mail submitted to that server may possibly be lost. It is
+ therefore important to remove domains from the old mail host as
+ soon as the MX record is changed.
+
+ Haeredes can alert administrators when NS/MX records are changed. More
+ detail and usage examples can be found in the man page.
+
+ /Examples/:
+
+ Make sure example.com has the expected name servers,
+ [ab].iana-servers.net:
+
+ @
+ $ echo \"example.com\" | haeredes a.iana-servers.net b.iana-servers.net
+ @
+
+ Check orlitzky.com against only one of the expected two nameservers:
+
+ @
+ $ echo \"orlitzky.com\" | haeredes dns1.viabit.com
+ Domain \"orlitzky.com.\" delegates somewhere else: \"dns2.viabit.com.\"
+ @
+
+ Check a nonexistent domain (we provide no delegates, since we
+ know .doesnt-exist will not be delegated):
+
+ @
+ $ echo \"foo.doesnt-exist\" | haeredes
+ Domain \"foo.doesnt-exist.\" not delegated.
+ @
executable haeredes
build-depends:
- base == 4.*,
- bytestring == 0.10.*,
- cmdargs == 0.10.*,
- dns >= 0.3.7,
- MissingH == 1.2.*,
- parallel-io == 0.3.*
+ base >= 4.15 && < 5.0,
+ bytestring >= 0.10,
+ cmdargs >= 0.10,
+ dns >= 1.4,
+ iproute >= 1.2,
+ parallel-io >= 0.3
+
+ default-language:
+ Haskell2010
main-is:
Main.hs
hs-source-dirs:
src/
- ghc-options:
- -Wall
- -fwarn-hi-shadowing
- -fwarn-missing-signatures
- -fwarn-name-shadowing
- -fwarn-orphans
- -fwarn-type-defaults
- -fwarn-tabs
- -fwarn-incomplete-record-updates
- -fwarn-monomorphism-restriction
- -fwarn-unused-do-bind
- -rtsopts
- -threaded
- -optc-O3
- -optc-march=native
+ other-modules:
+ CommandLine
+ DNS
+ ExitCodes
+ Paths_haeredes
+ Timeout
+
+ autogen-modules:
+ Paths_haeredes
+
+
+test-suite doctests
+ type: exitcode-stdio-1.0
+ hs-source-dirs: test
+ default-language: Haskell2010
+ main-is: Doctests.hs
+ build-depends:
+ base >= 4.15 && < 5.0,
+ -- Additional test dependencies.
+ doctest >= 0.9,
+ filemanip >= 0.3.6
+
+
+-- These won't work without shelltestrunner installed in your
+-- $PATH. Maybe there is some way to tell Cabal that.
+test-suite shelltests
+ type: exitcode-stdio-1.0
+ hs-source-dirs: test
+ default-language: Haskell2010
+ main-is: ShellTests.hs
+
+ build-depends:
+ base >= 4.15 && < 5.0,
+ process >= 1.1
+
source-repository head
type: git
- location: http://michael.orlitzky.com/git/haeredes.git
+ location: https://gitweb.michael.orlitzky.com/haeredes.git
branch: master