9961eed08dc6478c038edefb528e80e38e470cff
[haeredes.git] / haeredes.cabal
1 name: haeredes
2 version: 0.4.0
3 cabal-version: >= 1.8
4 author: Michael Orlitzky
5 maintainer: Michael Orlitzky <michael@orlitzky.com>
6 license: GPL-3
7 license-file: doc/LICENSE
8 homepage: http://michael.orlitzky.com/code/haeredes.php
9 bug-reports: mailto:michael@orlitzky.com
10 category: DNS, Utils
11 build-type: Simple
12 extra-source-files:
13 doc/man1/haeredes.1
14 synopsis:
15 Confirm delegation of NS and MX records.
16 description:
17 Haeredes is primarily useful for ISP network administrators.
18 Customers will occasionally decide to switch hosts without alerting
19 the current host; this can cause two problems:
20 .
21 * With NS records, the previous host (at the very least) keeps
22 hosting a DNS zone that does nothing. If that host uses their
23 authoritative nameserver as a caching lookup server as well, it
24 may return incorrect results to queries about the domain in
25 question.
26 .
27 * For MX records, the situation is slightly worse. Most mail servers
28 will immediately accept mail for which the server thinks it is the
29 ultimate destination. If a mail server is configured as the
30 destination for a domain, but it is not the MX for that domain,
31 then mail submitted to that server may possibly be lost. It is
32 therefore important to remove domains from the old mail host as
33 soon as the MX record is changed.
34 .
35 Haeredes can alert administrators when NS/MX records are changed. More
36 detail can be found in the man page.
37 .
38 /Examples/:
39 .
40 Make sure example.com has the expected name servers,
41 [ab].iana-servers.net:
42 .
43 @
44 $ haeredes a.iana-servers.net b.iana-servers.net <<< \"example.com\"
45 @
46 .
47 If you use --no-append-root and your nameservers are rooted, you
48 must remember to supply the trailing dot yourself. Otherwise, you'll
49 get false positives.
50 .
51 @
52 $ haeredes --no-append-root \
53 &#x20; a.iana-servers.net b.iana-servers.net \
54 &#x20; <<< \"example.com\"
55 Domain \"example.com\" delegates somewhere else: \"b.iana-servers.net.\" \"a.iana-servers.net.\"
56 @
57 .
58 Check orlitzky.com against the expected name servers, using
59 d.gtld-servers.net:
60 .
61 @
62 $ haeredes --server 199.7.91.13 dns1.viabit.com dns2.viabit.com \
63 &#x20; <<< \"orlitzky.com\"
64 @
65 .
66 Check orlitzky.com against only one of the expected two nameservers:
67 .
68 @
69 $ haeredes dns1.viabit.com <<< \"orlitzky.com\"
70 Domain \"orlitzky.com.\" delegates somewhere else: \"dns2.viabit.com.\"
71 @
72 .
73 Check a nonexistent domain (we provide no delegates, since we
74 know .invalid will not be delegated):
75 .
76 @
77 $ haeredes <<< \"example.invalid\"
78 Domain \"example.invalid.\" not delegated.
79 @
80
81 executable haeredes
82 build-depends:
83 base == 4.*,
84 bytestring == 0.10.*,
85 cmdargs == 0.10.*,
86 dns == 1.*,
87 iproute == 1.2.*,
88 MissingH == 1.2.*,
89 parallel-io == 0.3.*,
90 -- Test deps
91 tasty == 0.8.*,
92 tasty-hunit == 0.8.*,
93 tasty-quickcheck == 0.8.*
94
95 main-is:
96 Main.hs
97
98 hs-source-dirs:
99 src/
100
101 other-modules:
102 CommandLine
103 DNS
104 ExitCodes
105 Timeout
106
107 ghc-options:
108 -Wall
109 -fwarn-hi-shadowing
110 -fwarn-missing-signatures
111 -fwarn-name-shadowing
112 -fwarn-orphans
113 -fwarn-type-defaults
114 -fwarn-tabs
115 -fwarn-incomplete-record-updates
116 -fwarn-monomorphism-restriction
117 -fwarn-unused-do-bind
118 -rtsopts
119 -threaded
120 -optc-O3
121 -optc-march=native
122
123 test-suite testsuite
124 type: exitcode-stdio-1.0
125 hs-source-dirs: src test
126 main-is: TestSuite.hs
127 build-depends:
128 base == 4.*,
129 bytestring == 0.10.*,
130 cmdargs == 0.10.*,
131 dns == 1.*,
132 iproute == 1.2.*,
133 MissingH == 1.2.*,
134 parallel-io == 0.3.*,
135 -- Test deps
136 tasty == 0.8.*,
137 tasty-hunit == 0.8.*,
138 tasty-quickcheck == 0.8.*
139
140 -- It's not entirely clear to me why I have to reproduce all of this.
141 ghc-options:
142 -Wall
143 -fwarn-hi-shadowing
144 -fwarn-missing-signatures
145 -fwarn-name-shadowing
146 -fwarn-orphans
147 -fwarn-type-defaults
148 -fwarn-tabs
149 -fwarn-incomplete-record-updates
150 -fwarn-monomorphism-restriction
151 -fwarn-unused-do-bind
152 -rtsopts
153 -threaded
154 -optc-O3
155 -optc-march=native
156
157 test-suite doctests
158 type: exitcode-stdio-1.0
159 hs-source-dirs: test
160 main-is: Doctests.hs
161 build-depends:
162 base == 4.*,
163 -- Additional test dependencies.
164 doctest == 0.9.*,
165 filemanip == 0.3.6.*
166
167 -- It's not entirely clear to me why I have to reproduce all of this.
168 ghc-options:
169 -Wall
170 -fwarn-hi-shadowing
171 -fwarn-missing-signatures
172 -fwarn-name-shadowing
173 -fwarn-orphans
174 -fwarn-type-defaults
175 -fwarn-tabs
176 -fwarn-incomplete-record-updates
177 -fwarn-monomorphism-restriction
178 -fwarn-unused-do-bind
179 -rtsopts
180 -threaded
181 -optc-O3
182 -optc-march=native
183
184 source-repository head
185 type: git
186 location: http://michael.orlitzky.com/git/haeredes.git
187 branch: master