Add a man page section on parallel queries.
[haeredes.git] / haeredes.cabal
1 name: haeredes
2 version: 0.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 >= 0.3.7,
87 iproute == 1.2.*,
88 MissingH == 1.2.*,
89 parallel-io == 0.3.*,
90 -- Test deps
91 HUnit == 1.2.*,
92 QuickCheck == 2.*,
93 test-framework == 0.8.*,
94 test-framework-hunit == 0.3.*,
95 test-framework-quickcheck2 == 0.3.*
96
97 main-is:
98 Main.hs
99
100 hs-source-dirs:
101 src/
102
103 other-modules:
104 CommandLine
105 DNS
106 ExitCodes
107
108 ghc-options:
109 -Wall
110 -fwarn-hi-shadowing
111 -fwarn-missing-signatures
112 -fwarn-name-shadowing
113 -fwarn-orphans
114 -fwarn-type-defaults
115 -fwarn-tabs
116 -fwarn-incomplete-record-updates
117 -fwarn-monomorphism-restriction
118 -fwarn-unused-do-bind
119 -rtsopts
120 -threaded
121 -optc-O3
122 -optc-march=native
123
124 test-suite testsuite
125 type: exitcode-stdio-1.0
126 hs-source-dirs: src test
127 main-is: TestSuite.hs
128 build-depends:
129 base == 4.*,
130 bytestring == 0.10.*,
131 cmdargs == 0.10.*,
132 dns >= 0.3.7,
133 iproute == 1.2.*,
134 MissingH == 1.2.*,
135 parallel-io == 0.3.*,
136 -- Test deps
137 HUnit == 1.2.*,
138 QuickCheck == 2.*,
139 test-framework == 0.8.*,
140 test-framework-hunit == 0.3.*,
141 test-framework-quickcheck2 == 0.3.*
142
143 -- It's not entirely clear to me why I have to reproduce all of this.
144 ghc-options:
145 -Wall
146 -fwarn-hi-shadowing
147 -fwarn-missing-signatures
148 -fwarn-name-shadowing
149 -fwarn-orphans
150 -fwarn-type-defaults
151 -fwarn-tabs
152 -fwarn-incomplete-record-updates
153 -fwarn-monomorphism-restriction
154 -fwarn-unused-do-bind
155 -rtsopts
156 -threaded
157 -optc-O3
158 -optc-march=native
159
160 test-suite doctests
161 type: exitcode-stdio-1.0
162 hs-source-dirs: test
163 main-is: Doctests.hs
164 build-depends:
165 base == 4.*,
166 -- Additional test dependencies.
167 doctest == 0.9.*,
168 filemanip == 0.3.6.*
169
170 -- It's not entirely clear to me why I have to reproduce all of this.
171 ghc-options:
172 -Wall
173 -fwarn-hi-shadowing
174 -fwarn-missing-signatures
175 -fwarn-name-shadowing
176 -fwarn-orphans
177 -fwarn-type-defaults
178 -fwarn-tabs
179 -fwarn-incomplete-record-updates
180 -fwarn-monomorphism-restriction
181 -fwarn-unused-do-bind
182 -rtsopts
183 -threaded
184 -optc-O3
185 -optc-march=native
186
187 source-repository head
188 type: git
189 location: http://michael.orlitzky.com/git/haeredes.git
190 branch: master