1 | 2010-12-17 Bob Halley <halley@dnspython.org>
|
---|
2 |
|
---|
3 | * dns/message.py (_WireReader._get_section): use "is" and not "=="
|
---|
4 | when testing what section an RR is in. Thanks to James Raftery
|
---|
5 | for reporting this bug.
|
---|
6 |
|
---|
7 | 2010-12-10 Bob Halley <halley@dnspython.org>
|
---|
8 |
|
---|
9 | * dns/resolver.py (Resolver.query): disallow metaqueries.
|
---|
10 |
|
---|
11 | * dns/rdata.py (Rdata.__hash__): Added a __hash__ method for rdata.
|
---|
12 |
|
---|
13 | 2010-11-23 Bob Halley <halley@dnspython.org>
|
---|
14 |
|
---|
15 | * (Version 1.9.2 released)
|
---|
16 |
|
---|
17 | 2010-11-23 Bob Halley <halley@dnspython.org>
|
---|
18 |
|
---|
19 | * dns/dnssec.py (_need_pycrypto): DSA and RSA are modules, not
|
---|
20 | functions, and I didn't notice because the test suite masked
|
---|
21 | the bug! *sigh*
|
---|
22 |
|
---|
23 | 2010-11-22 Bob Halley <halley@dnspython.org>
|
---|
24 |
|
---|
25 | * (Version 1.9.1 released)
|
---|
26 |
|
---|
27 | 2010-11-22 Bob Halley <halley@dnspython.org>
|
---|
28 |
|
---|
29 | * dns/dnssec.py: the "from" style import used to get DSA from
|
---|
30 | PyCrypto trashed a DSA constant. Now a normal import is used
|
---|
31 | to avoid namespace contamination.
|
---|
32 |
|
---|
33 | 2010-11-20 Bob Halley <halley@dnspython.org>
|
---|
34 |
|
---|
35 | * (Version 1.9.0 released)
|
---|
36 |
|
---|
37 | 2010-11-07 Bob Halley <halley@dnspython.org>
|
---|
38 |
|
---|
39 | * dns/dnssec.py: Added validate() to do basic DNSSEC validation
|
---|
40 | (requires PyCrypto). Thanks to Brian Wellington for the patch.
|
---|
41 |
|
---|
42 | * dns/hash.py: Hash compatibility handling is now its own module.
|
---|
43 |
|
---|
44 | 2010-10-31 Bob Halley <halley@dnspython.org>
|
---|
45 |
|
---|
46 | * dns/resolver.py (zone_for_name): A query name resulting in a
|
---|
47 | CNAME or DNAME response to a node which had an SOA was incorrectly
|
---|
48 | treated as a zone origin. In these cases, we should just look
|
---|
49 | higher. Thanks to Gert Berger for reporting this problem.
|
---|
50 |
|
---|
51 | * Added zonediff.py to examples. This program compares two zones
|
---|
52 | and shows the differences either in diff-like plain text, or
|
---|
53 | HTML. Thanks to Dennis Kaarsemaker for contributing this
|
---|
54 | useful program.
|
---|
55 |
|
---|
56 | 2010-10-27 Bob Halley <halley@dnspython.org>
|
---|
57 |
|
---|
58 | * Incorporate a patch to use poll() instead of select() by
|
---|
59 | default on platforms which support it. Thanks to
|
---|
60 | Peter SchÃŒller and Spotify for the contribution.
|
---|
61 |
|
---|
62 | 2010-10-17 Bob Halley <halley@dnspython.org>
|
---|
63 |
|
---|
64 | * Python prior to 2.5.2 doesn't compute the correct values for
|
---|
65 | HMAC-SHA384 and HMAC-SHA512. We now detect attempts to use
|
---|
66 | them and raise NotImplemented if the Python version is too old.
|
---|
67 | Thanks to Kevin Chen for reporting the problem.
|
---|
68 |
|
---|
69 | * Various routines that took the string forms of rdata types and
|
---|
70 | classes did not permit the strings to be Unicode strings.
|
---|
71 | Thanks to Ryan Workman for reporting the issue.
|
---|
72 |
|
---|
73 | * dns/tsig.py: Added symbolic constants for the algorithm strings.
|
---|
74 | E.g. you can now say dns.tsig.HMAC_MD5 instead of
|
---|
75 | "HMAC-MD5.SIG-ALG.REG.INT". Thanks to Cillian Sharkey for
|
---|
76 | suggesting this improvement.
|
---|
77 |
|
---|
78 | * dns/tsig.py (get_algorithm): fix hashlib compatibility; thanks to
|
---|
79 | Kevin Chen for the patch.
|
---|
80 |
|
---|
81 | * dns/dnssec.py: Added key_id() and make_ds().
|
---|
82 |
|
---|
83 | * dns/message.py: message.py needs to import dns.edns since it uses
|
---|
84 | it.
|
---|
85 |
|
---|
86 | 2010-05-04 Bob Halley <halley@dnspython.org>
|
---|
87 |
|
---|
88 | * dns/rrset.py (RRset.__init__): "covers" was not passed to the
|
---|
89 | superclass __init__(). Thanks to Shanmuga Rajan for reporting
|
---|
90 | the problem.
|
---|
91 |
|
---|
92 | 2010-03-10 Bob Halley <halley@dnspython.org>
|
---|
93 |
|
---|
94 | * The TSIG algorithm value was passed to use_tsig() incorrectly
|
---|
95 | in some cases. Thanks to 'ducciovigolo' for reporting the problem.
|
---|
96 |
|
---|
97 | 2010-01-26 Bob Halley <halley@dnspython.org>
|
---|
98 |
|
---|
99 | * (Version 1.8.0 released)
|
---|
100 |
|
---|
101 | 2010-01-13 Bob Halley <halley@dnspython.org>
|
---|
102 |
|
---|
103 | * dns/dnssec.py: Added RSASHA256 and RSASHA512 codepoints; added
|
---|
104 | other missing codepoints to _algorithm_by_text.
|
---|
105 |
|
---|
106 | 2010-01-12 Bob Halley <halley@dnspython.org>
|
---|
107 |
|
---|
108 | * Escapes in masterfiles now work correctly. Previously they were
|
---|
109 | only working correctly when the text involved was part of a domain
|
---|
110 | name.
|
---|
111 |
|
---|
112 | * dns/tokenizer.py: The tokenizer's get() method now returns Token
|
---|
113 | objects, not (type, text) tuples.
|
---|
114 |
|
---|
115 | 2009-11-13 Bob Halley <halley@dnspython.org>
|
---|
116 |
|
---|
117 | * Support has been added for hmac-sha1, hmac-sha224, hmac-sha256,
|
---|
118 | hmac-sha384 and hmac-sha512. Thanks to Kevin Chen for a
|
---|
119 | thoughtful, high quality patch.
|
---|
120 |
|
---|
121 | * dns/update.py (Update::present): A zero TTL was not added if
|
---|
122 | present() was called with a single rdata, causing _add() to be
|
---|
123 | unhappy. Thanks to Eugene Kim for reporting the problem and
|
---|
124 | submitting a patch.
|
---|
125 |
|
---|
126 | * dns/entropy.py: Use os.urandom() if present. Don't seed until
|
---|
127 | someone wants randomness.
|
---|
128 |
|
---|
129 | 2009-09-16 Bob Halley <halley@dnspython.org>
|
---|
130 |
|
---|
131 | * dns/entropy.py: The entropy module needs locking in order to be
|
---|
132 | used safely in a multithreaded environment. Thanks to Beda Kosata
|
---|
133 | for reporting the problem.
|
---|
134 |
|
---|
135 | 2009-07-27 Bob Halley <halley@dnspython.org>
|
---|
136 |
|
---|
137 | * dns/query.py (xfr): The socket was not set to nonblocking mode.
|
---|
138 | Thanks to Erik Romijn for reporting this problem.
|
---|
139 |
|
---|
140 | 2009-07-23 Bob Halley <halley@dnspython.org>
|
---|
141 |
|
---|
142 | * dns/rdtypes/IN/SRV.py (SRV._cmp): SRV records were compared
|
---|
143 | incorrectly due to a cut-and-paste error. Thanks to Tommie
|
---|
144 | Gannert for reporting this bug.
|
---|
145 |
|
---|
146 | * dns/e164.py (query): The resolver parameter was not used.
|
---|
147 | Thanks to MatÃas Bellone for reporting this bug.
|
---|
148 |
|
---|
149 | 2009-06-23 Bob Halley <halley@dnspython.org>
|
---|
150 |
|
---|
151 | * dns/entropy.py (EntropyPool.__init__): open /dev/random unbuffered;
|
---|
152 | there's no need to consume more randomness than we need. Thanks
|
---|
153 | to Brian Wellington for the patch.
|
---|
154 |
|
---|
155 | 2009-06-19 Bob Halley <halley@dnspython.org>
|
---|
156 |
|
---|
157 | * (Version 1.7.1 released)
|
---|
158 |
|
---|
159 | 2009-06-19 Bob Halley <halley@dnspython.org>
|
---|
160 |
|
---|
161 | * DLV.py was omitted from the kit
|
---|
162 |
|
---|
163 | * Negative prerequisites were not handled correctly in _get_section().
|
---|
164 |
|
---|
165 | 2009-06-19 Bob Halley <halley@dnspython.org>
|
---|
166 |
|
---|
167 | * (Version 1.7.0 released)
|
---|
168 |
|
---|
169 | 2009-06-19 Bob Halley <halley@dnspython.org>
|
---|
170 |
|
---|
171 | * On Windows, the resolver set the domain incorrectly. Thanks
|
---|
172 | to Brandon Carpenter for reporting this bug.
|
---|
173 |
|
---|
174 | * Added a to_digestable() method to rdata classes; it returns the
|
---|
175 | digestable form (i.e. DNSSEC canonical form) of the rdata. For
|
---|
176 | most rdata types this is the same uncompressed wire form. For
|
---|
177 | certain older DNS RR types, however, domain names in the rdata
|
---|
178 | are downcased.
|
---|
179 |
|
---|
180 | * Added support for the HIP RR type.
|
---|
181 |
|
---|
182 | 2009-06-18 Bob Halley <halley@dnspython.org>
|
---|
183 |
|
---|
184 | * Added support for the DLV RR type.
|
---|
185 |
|
---|
186 | * Added various DNSSEC related constants (e.g. algorithm identifiers,
|
---|
187 | flag values).
|
---|
188 |
|
---|
189 | * dns/tsig.py: Added support for BADTRUNC result code.
|
---|
190 |
|
---|
191 | * dns/query.py (udp): When checking that addresses are the same,
|
---|
192 | use the binary form of the address in the comparison. This
|
---|
193 | ensures that we don't treat addresses as different if they have
|
---|
194 | equivalent but differing textual representations. E.g. "1:00::1"
|
---|
195 | and "1::1" represent the same address but are not textually equal.
|
---|
196 | Thanks to Kim Davies for reporting this bug.
|
---|
197 |
|
---|
198 | * The resolver's query() method now has an optional 'source' parameter,
|
---|
199 | allowing the source IP address to be specified. Thanks to
|
---|
200 | Alexander Lind for suggesting the change and sending a patch.
|
---|
201 |
|
---|
202 | * Added NSEC3 and NSEC3PARAM support.
|
---|
203 |
|
---|
204 | 2009-06-17 Bob Halley <halley@dnspython.org>
|
---|
205 |
|
---|
206 | * Fixed NSEC.to_text(), which was only printing the last window.
|
---|
207 | Thanks to Brian Wellington for finding the problem and fixing it.
|
---|
208 |
|
---|
209 | 2009-03-30 Bob Halley <halley@dnspython.org>
|
---|
210 |
|
---|
211 | * dns/query.py (xfr): Allow UDP IXFRs. Use "one_rr_per_rrset" mode when
|
---|
212 | doing IXFR.
|
---|
213 |
|
---|
214 | 2009-03-30 Bob Halley <halley@dnspython.org>
|
---|
215 |
|
---|
216 | * Add "one_rr_per_rrset" mode switch to methods which parse
|
---|
217 | messages from wire format (e.g. dns.message.from_wire(),
|
---|
218 | dns.query.udp(), dns.query.tcp()). If set, each RR read is
|
---|
219 | placed in its own RRset (instead of being coalesced).
|
---|
220 |
|
---|
221 | 2009-03-30 Bob Halley <halley@dnspython.org>
|
---|
222 |
|
---|
223 | * Added EDNS option support.
|
---|
224 |
|
---|
225 | 2008-10-16 Bob Halley <halley@dnspython.org>
|
---|
226 |
|
---|
227 | * dns/rdtypes/ANY/DS.py: The from_text() parser for DS RRs did not
|
---|
228 | allow multiple Base64 chunks. Thanks to Rakesh Banka for
|
---|
229 | finding this bug and submitting a patch.
|
---|
230 |
|
---|
231 | 2008-10-08 Bob Halley <halley@dnspython.org>
|
---|
232 |
|
---|
233 | * Add entropy module.
|
---|
234 |
|
---|
235 | * When validating TSIGs, we need to use the absolute name.
|
---|
236 |
|
---|
237 | 2008-06-03 Bob Halley <halley@dnspython.org>
|
---|
238 |
|
---|
239 | * dns/message.py (Message.set_rcode): The mask used preserved the
|
---|
240 | extended rcode, instead of everything else in ednsflags.
|
---|
241 |
|
---|
242 | * dns/message.py (Message.use_edns): ednsflags was not kept
|
---|
243 | coherent with the specified edns version.
|
---|
244 |
|
---|
245 | 2008-02-06 Bob Halley <halley@dnspython.org>
|
---|
246 |
|
---|
247 | * dns/ipv6.py (inet_aton): We could raise an exception other than
|
---|
248 | dns.exception.SyntaxError in some cases.
|
---|
249 |
|
---|
250 | * dns/tsig.py: Raise an exception when the peer has set a non-zero
|
---|
251 | TSIG error.
|
---|
252 |
|
---|
253 | 2007-11-25 Bob Halley <halley@dnspython.org>
|
---|
254 |
|
---|
255 | * (Version 1.6.0 released)
|
---|
256 |
|
---|
257 | 2007-11-25 Bob Halley <halley@dnspython.org>
|
---|
258 |
|
---|
259 | * dns/query.py (_wait_for): if select() raises an exception due to
|
---|
260 | EINTR, we should just select() again.
|
---|
261 |
|
---|
262 | 2007-06-13 Bob Halley <halley@dnspython.org>
|
---|
263 |
|
---|
264 | * dns/inet.py: Added is_multicast().
|
---|
265 |
|
---|
266 | * dns/query.py (udp): If the queried address is a multicast address, then
|
---|
267 | don't check that the address of the response is the same as the address
|
---|
268 | queried.
|
---|
269 |
|
---|
270 | 2007-05-24 Bob Halley <halley@dnspython.org>
|
---|
271 |
|
---|
272 | * dns/rdtypes/IN/NAPTR.py: NAPTR comparisons didn't compare the
|
---|
273 | preference field due to a typo.
|
---|
274 |
|
---|
275 | 2007-02-07 Bob Halley <halley@dnspython.org>
|
---|
276 |
|
---|
277 | * dns/resolver.py: Integrate code submitted by Paul Marks to
|
---|
278 | determine whether a Windows NIC is enabled. The way dnspython
|
---|
279 | used to do this does not work on Windows Vista.
|
---|
280 |
|
---|
281 | 2006-12-10 Bob Halley <halley@dnspython.org>
|
---|
282 |
|
---|
283 | * (Version 1.5.0 released)
|
---|
284 |
|
---|
285 | 2006-11-03 Bob Halley <halley@dnspython.org>
|
---|
286 |
|
---|
287 | * dns/rdtypes/IN/DHCID.py: Added support for the DHCID RR type.
|
---|
288 |
|
---|
289 | 2006-11-02 Bob Halley <halley@dnspython.org>
|
---|
290 |
|
---|
291 | * dns/query.py (udp): Messages from unexpected sources can now be
|
---|
292 | ignored by setting ignore_unexpected to True.
|
---|
293 |
|
---|
294 | 2006-10-31 Bob Halley <halley@dnspython.org>
|
---|
295 |
|
---|
296 | * dns/query.py (udp): When raising UnexpectedSource, add more
|
---|
297 | detail about what went wrong to the exception.
|
---|
298 |
|
---|
299 | 2006-09-22 Bob Halley <halley@dnspython.org>
|
---|
300 |
|
---|
301 | * dns/message.py (Message.use_edns): add reasonable defaults for
|
---|
302 | the ednsflags, payload, and request_payload parameters.
|
---|
303 |
|
---|
304 | * dns/message.py (Message.want_dnssec): add a convenience method for
|
---|
305 | enabling/disabling the "DNSSEC desired" flag in requests.
|
---|
306 |
|
---|
307 | * dns/message.py (make_query): add "use_edns" and "want_dnssec"
|
---|
308 | parameters.
|
---|
309 |
|
---|
310 | 2006-08-17 Bob Halley <halley@dnspython.org>
|
---|
311 |
|
---|
312 | * dns/resolver.py (Resolver.read_resolv_conf): If /etc/resolv.conf
|
---|
313 | doesn't exist, just use the default resolver configuration (i.e.
|
---|
314 | the same thing we would have used if resolv.conf had existed and
|
---|
315 | been empty).
|
---|
316 |
|
---|
317 | 2006-07-26 Bob Halley <halley@dnspython.org>
|
---|
318 |
|
---|
319 | * dns/resolver.py (Resolver._config_win32_fromkey): fix
|
---|
320 | cut-and-paste error where we passed the wrong variable to
|
---|
321 | self._config_win32_search(). Thanks to David Arnold for finding
|
---|
322 | the bug and submitting a patch.
|
---|
323 |
|
---|
324 | 2006-07-20 Bob Halley <halley@dnspython.org>
|
---|
325 |
|
---|
326 | * dns/resolver.py (Answer): Add more support for the sequence
|
---|
327 | protocol, forwarding requests to the answer object's rrset.
|
---|
328 | E.g. "for a in answer" is equivalent to "for a in answer.rrset",
|
---|
329 | "answer[i]" is equivalent to "answer.rrset[i]", and
|
---|
330 | "answer[i:j]" is equivalent to "answer.rrset[i:j]".
|
---|
331 |
|
---|
332 | 2006-07-19 Bob Halley <halley@dnspython.org>
|
---|
333 |
|
---|
334 | * dns/query.py (xfr): Add IXFR support.
|
---|
335 |
|
---|
336 | 2006-06-22 Bob Halley <halley@dnspython.org>
|
---|
337 |
|
---|
338 | * dns/rdtypes/IN/IPSECKEY.py: Added support for the IPSECKEY RR type.
|
---|
339 |
|
---|
340 | 2006-06-21 Bob Halley <halley@dnspython.org>
|
---|
341 |
|
---|
342 | * dns/rdtypes/ANY/SPF.py: Added support for the SPF RR type.
|
---|
343 |
|
---|
344 | 2006-06-02 Bob Halley <halley@dnspython.org>
|
---|
345 |
|
---|
346 | * (Version 1.4.0 released)
|
---|
347 |
|
---|
348 | 2006-04-25 Bob Halley <halley@dnspython.org>
|
---|
349 |
|
---|
350 | * dns/rrset.py (RRset.to_rdataset): Added a convenience method
|
---|
351 | to convert an rrset into an rdataset.
|
---|
352 |
|
---|
353 | 2006-03-27 Bob Halley <halley@dnspython.org>
|
---|
354 |
|
---|
355 | * Added dns.e164.query(). This function can be used to look for
|
---|
356 | NAPTR RRs for a specified number in several domains, e.g.:
|
---|
357 |
|
---|
358 | dns.e164.query('16505551212',
|
---|
359 | ['e164.dnspython.org.', 'e164.arpa.'])
|
---|
360 |
|
---|
361 | 2006-03-26 Bob Halley <halley@dnspython.org>
|
---|
362 |
|
---|
363 | * dns/resolver.py (Resolver.query): The resolver deleted from
|
---|
364 | a list while iterating it, which makes the iterator unhappy.
|
---|
365 |
|
---|
366 | 2006-03-17 Bob Halley <halley@dnspython.org>
|
---|
367 |
|
---|
368 | * dns/resolver.py (Resolver.query): The resolver needlessly
|
---|
369 | delayed responses for successful queries.
|
---|
370 |
|
---|
371 | 2006-01-18 Bob Halley <halley@dnspython.org>
|
---|
372 |
|
---|
373 | * dns/rdata.py: added a validate() method to the rdata class. If
|
---|
374 | you change an rdata by assigning to its fields, it is a good
|
---|
375 | idea to call validate() when you are done making changes.
|
---|
376 | For example, if 'r' is an MX record and then you execute:
|
---|
377 |
|
---|
378 | r.preference = 100000 # invalid, because > 65535
|
---|
379 | r.validate()
|
---|
380 |
|
---|
381 | The validation will fail and an exception will be raised.
|
---|
382 |
|
---|
383 | 2006-01-11 Bob Halley <halley@dnspython.org>
|
---|
384 |
|
---|
385 | * dns/ttl.py: TTLs are now bounds checked to be within the closed
|
---|
386 | interval [0, 2^31 - 1].
|
---|
387 |
|
---|
388 | * The BIND 8 TTL syntax is now accepted in the SOA refresh, retry,
|
---|
389 | expire, and minimum fields, and in the original_ttl field of
|
---|
390 | SIG and RRSIG records.
|
---|
391 |
|
---|
392 | 2006-01-04 Bob Halley <halley@dnspython.org>
|
---|
393 |
|
---|
394 | * dns/resolver.py: The windows registry irritatingly changes the
|
---|
395 | list element delimiter in between ' ' and ',' (and vice-versa)
|
---|
396 | in various versions of windows. We now cope by always looking
|
---|
397 | for either one (' ' first).
|
---|
398 |
|
---|
399 | 2005-12-27 Bob Halley <halley@dnspython.org>
|
---|
400 |
|
---|
401 | * dns/e164.py: Added routines to convert between E.164 numbers and
|
---|
402 | their ENUM domain name equivalents.
|
---|
403 |
|
---|
404 | * dns/reversename.py: Added routines to convert between IPv4 and
|
---|
405 | IPv6 addresses and their DNS reverse-map equivalents.
|
---|
406 |
|
---|
407 | 2005-12-18 Bob Halley <halley@dnspython.org>
|
---|
408 |
|
---|
409 | * dns/rdtypes/ANY/LOC.py (_tuple_to_float): The sign was lost when
|
---|
410 | converting a tuple into a float, which broke conversions of
|
---|
411 | south latitudes and west longitudes.
|
---|
412 |
|
---|
413 | 2005-11-17 Bob Halley <halley@dnspython.org>
|
---|
414 |
|
---|
415 | * dns/zone.py: The 'origin' parameter to from_text() and from_file()
|
---|
416 | is now optional. If not specified, dnspython will use the
|
---|
417 | first $ORIGIN in the text as the zone's origin.
|
---|
418 |
|
---|
419 | * dns/zone.py: Sanity checks of the zone's origin node can now
|
---|
420 | be disabled.
|
---|
421 |
|
---|
422 | 2005-11-12 Bob Halley <halley@dnspython.org>
|
---|
423 |
|
---|
424 | * dns/name.py: Preliminary Unicode support has been added for
|
---|
425 | domain names. Running dns.name.from_text() on a Unicode string
|
---|
426 | will now encode each label using the IDN ACE encoding. The
|
---|
427 | to_unicode() method may be used to convert a dns.name.Name with
|
---|
428 | IDN ACE labels back into a Unicode string. This functionality
|
---|
429 | requires Python 2.3 or greater.
|
---|
430 |
|
---|
431 | 2005-10-31 Bob Halley <halley@dnspython.org>
|
---|
432 |
|
---|
433 | * (Version 1.3.5 released)
|
---|
434 |
|
---|
435 | 2005-10-12 Bob Halley <halley@dnspython.org>
|
---|
436 |
|
---|
437 | * dns/zone.py: Zone.iterate_rdatasets() and Zone.iterate_rdatas()
|
---|
438 | did not have a default rdtype of dns.rdatatype.ANY as their
|
---|
439 | docstrings said they did. They do now.
|
---|
440 |
|
---|
441 | 2005-10-06 Bob Halley <halley@dnspython.org>
|
---|
442 |
|
---|
443 | * dns/name.py: Added the parent() method, which returns the
|
---|
444 | parent of a name.
|
---|
445 |
|
---|
446 | 2005-10-01 Bob Halley <halley@dnspython.org>
|
---|
447 |
|
---|
448 | * dns/resolver.py: Added zone_for_name() helper, which returns
|
---|
449 | the name of the zone which contains the specified name.
|
---|
450 |
|
---|
451 | * dns/resolver.py: Added get_default_resolver(), which returns
|
---|
452 | the default resolver, initializing it if necessary.
|
---|
453 |
|
---|
454 | 2005-09-29 Bob Halley <halley@dnspython.org>
|
---|
455 |
|
---|
456 | * dns/resolver.py (Resolver._compute_timeout): If time goes
|
---|
457 | backwards a little bit, ignore it.
|
---|
458 |
|
---|
459 | 2005-07-31 Bob Halley <halley@dnspython.org>
|
---|
460 |
|
---|
461 | * (Version 1.3.4 released)
|
---|
462 |
|
---|
463 | 2005-07-31 Bob Halley <halley@dnspython.org>
|
---|
464 |
|
---|
465 | * dns/message.py (make_response): Trying to respond to a response
|
---|
466 | threw a NameError while trying to throw a FormErr since it used
|
---|
467 | the wrong name for the FormErr exception.
|
---|
468 |
|
---|
469 | * dns/query.py (_connect): We needed to ignore EALREADY too.
|
---|
470 |
|
---|
471 | * dns/query.py: Optional "source" and "source_port" parameters
|
---|
472 | have been added to udp(), tcp(), and xfr(). Thanks to Ralf
|
---|
473 | Weber for suggesting the change and providing a patch.
|
---|
474 |
|
---|
475 | 2005-06-05 Bob Halley <halley@dnspython.org>
|
---|
476 |
|
---|
477 | * dns/query.py: The requirement that the "where" parameter be
|
---|
478 | an IPv4 or IPv6 address is now documented.
|
---|
479 |
|
---|
480 | 2005-06-04 Bob Halley <halley@dnspython.org>
|
---|
481 |
|
---|
482 | * dns/resolver.py: The resolver now does exponential backoff
|
---|
483 | each time it runs through all of the nameservers.
|
---|
484 |
|
---|
485 | * dns/resolver.py: rcodes which indicate a nameserver is likely
|
---|
486 | to be a "permanent failure" for a query cause the nameserver
|
---|
487 | to be removed from the mix for that query.
|
---|
488 |
|
---|
489 | 2005-01-30 Bob Halley <halley@dnspython.org>
|
---|
490 |
|
---|
491 | * (Version 1.3.3 released)
|
---|
492 |
|
---|
493 | 2004-10-25 Bob Halley <halley@dnspython.org>
|
---|
494 |
|
---|
495 | * dns/rdtypes/ANY/TXT.py (TXT.from_text): The masterfile parser
|
---|
496 | incorrectly rejected TXT records where a value was not quoted.
|
---|
497 |
|
---|
498 | 2004-10-11 Bob Halley <halley@dnspython.org>
|
---|
499 |
|
---|
500 | * dns/message.py: Added make_response(), which creates a skeletal
|
---|
501 | response for the specified query. Added opcode() and set_opcode()
|
---|
502 | convenience methods to the Message class. Added the request_payload
|
---|
503 | attribute to the Message class.
|
---|
504 |
|
---|
505 | 2004-10-10 Bob Halley <halley@dnspython.org>
|
---|
506 |
|
---|
507 | * dns/zone.py (from_xfr): dns.zone.from_xfr() in relativization
|
---|
508 | mode incorrectly set zone.origin to the empty name.
|
---|
509 |
|
---|
510 | 2004-09-02 Bob Halley <halley@dnspython.org>
|
---|
511 |
|
---|
512 | * dns/name.py (Name.to_wire): The 'file' parameter to
|
---|
513 | Name.to_wire() is now optional; if omitted, the wire form will
|
---|
514 | be returned as the value of the function.
|
---|
515 |
|
---|
516 | 2004-08-14 Bob Halley <halley@dnspython.org>
|
---|
517 |
|
---|
518 | * dns/message.py (Message.find_rrset): find_rrset() now uses an
|
---|
519 | index, vastly improving the from_wire() performance of large
|
---|
520 | messages such as zone transfers.
|
---|
521 |
|
---|
522 | 2004-08-07 Bob Halley <halley@dnspython.org>
|
---|
523 |
|
---|
524 | * (Version 1.3.2 released)
|
---|
525 |
|
---|
526 | 2004-08-04 Bob Halley <halley@dnspython.org>
|
---|
527 |
|
---|
528 | * dns/query.py: sending queries to a nameserver via IPv6 now
|
---|
529 | works.
|
---|
530 |
|
---|
531 | * dns/inet.py (af_for_address): Add af_for_address(), which looks
|
---|
532 | at a textual-form address and attempts to determine which address
|
---|
533 | family it is.
|
---|
534 |
|
---|
535 | * dns/query.py: the default for the 'af' parameter of the udp(),
|
---|
536 | tcp(), and xfr() functions has been changed from AF_INET to None,
|
---|
537 | which causes dns.inet.af_for_address() to be used to determine the
|
---|
538 | address family. If dns.inet.af_for_address() can't figure it out,
|
---|
539 | we fall back to AF_INET and hope for the best.
|
---|
540 |
|
---|
541 | 2004-07-31 Bob Halley <halley@dnspython.org>
|
---|
542 |
|
---|
543 | * dns/rdtypes/ANY/NSEC.py (NSEC.from_text): The NSEC text format
|
---|
544 | does not allow specifying types by number, so we shouldn't either.
|
---|
545 |
|
---|
546 | * dns/renderer.py: the renderer module didn't import random,
|
---|
547 | causing an exception to be raised if a query id wasn't provided
|
---|
548 | when a Renderer was created.
|
---|
549 |
|
---|
550 | * dns/resolver.py (Resolver.query): the resolver wasn't catching
|
---|
551 | dns.exception.Timeout, so a timeout erroneously caused the whole
|
---|
552 | resolution to fail instead of just going on to the next server.
|
---|
553 |
|
---|
554 | 2004-06-16 Bob Halley <halley@dnspython.org>
|
---|
555 |
|
---|
556 | * dns/rdtypes/ANY/LOC.py (LOC.from_text): LOC milliseconds values
|
---|
557 | were converted incorrectly if the length of the milliseconds
|
---|
558 | string was less than 3.
|
---|
559 |
|
---|
560 | 2004-06-06 Bob Halley <halley@dnspython.org>
|
---|
561 |
|
---|
562 | * (Version 1.3.1 released)
|
---|
563 |
|
---|
564 | 2004-05-22 Bob Halley <halley@dnspython.org>
|
---|
565 |
|
---|
566 | * dns/update.py (Update.delete): We erroneously specified a
|
---|
567 | "deleting" value of dns.rdatatype.NONE instead of
|
---|
568 | dns.rdataclass.NONE when the thing being deleted was either an
|
---|
569 | Rdataset instance or an Rdata instance.
|
---|
570 |
|
---|
571 | * dns/rdtypes/ANY/SSHFP.py: Added support for the proposed SSHFP
|
---|
572 | RR type.
|
---|
573 |
|
---|
574 | 2004-05-14 Bob Halley <halley@dnspython.org>
|
---|
575 |
|
---|
576 | * dns/rdata.py (from_text): The masterfile reader did not
|
---|
577 | accept the unknown RR syntax when used with a known RR type.
|
---|
578 |
|
---|
579 | 2004-05-08 Bob Halley <halley@dnspython.org>
|
---|
580 |
|
---|
581 | * dns/name.py (from_text): dns.name.from_text() did not raise
|
---|
582 | an exception if a backslash escape ended prematurely.
|
---|
583 |
|
---|
584 | 2004-04-09 Bob Halley <halley@dnspython.org>
|
---|
585 |
|
---|
586 | * dns/zone.py (_MasterReader._rr_line): The masterfile reader
|
---|
587 | erroneously treated lines starting with leading whitespace but
|
---|
588 | not having any RR definition as an error. It now treats
|
---|
589 | them like a blank line (which is not an error).
|
---|
590 |
|
---|
591 | 2004-04-01 Bob Halley <halley@dnspython.org>
|
---|
592 |
|
---|
593 | * (Version 1.3.0 released)
|
---|
594 |
|
---|
595 | 2004-03-19 Bob Halley <halley@dnspython.org>
|
---|
596 |
|
---|
597 | * Added support for new DNSSEC types RRSIG, NSEC, and DNSKEY.
|
---|
598 |
|
---|
599 | 2004-01-16 Bob Halley <halley@dnspython.org>
|
---|
600 |
|
---|
601 | * dns/query.py (_connect): Windows returns EWOULDBLOCK instead
|
---|
602 | of EINPROGRESS when trying to connect a nonblocking socket.
|
---|
603 |
|
---|
604 | 2003-11-13 Bob Halley <halley@dnspython.org>
|
---|
605 |
|
---|
606 | * dns/rdtypes/ANY/LOC.py (LOC.to_wire): We encoded and decoded LOC
|
---|
607 | incorrectly, since we were interpreting the values of altitiude,
|
---|
608 | size, hprec, and vprec in meters instead of centimeters.
|
---|
609 |
|
---|
610 | * dns/rdtypes/IN/WKS.py (WKS.from_wire): The WKS protocol value is
|
---|
611 | encoded with just one octet, not two!
|
---|
612 |
|
---|
613 | 2003-11-09 Bob Halley <halley@dnspython.org>
|
---|
614 |
|
---|
615 | * dns/resolver.py (Cache.maybe_clean): The cleaner deleted items
|
---|
616 | from the dictionary while iterating it, causing a RuntimeError
|
---|
617 | to be raised. Thanks to Mark R. Levinson for the bug report,
|
---|
618 | regression test, and fix.
|
---|
619 |
|
---|
620 | 2003-11-07 Bob Halley <halley@dnspython.org>
|
---|
621 |
|
---|
622 | * (Version 1.2.0 released)
|
---|
623 |
|
---|
624 | 2003-11-03 Bob Halley <halley@dnspython.org>
|
---|
625 |
|
---|
626 | * dns/zone.py (_MasterReader.read): The saved_state now includes
|
---|
627 | the default TTL.
|
---|
628 |
|
---|
629 | 2003-11-01 Bob Halley <halley@dnspython.org>
|
---|
630 |
|
---|
631 | * dns/tokenizer.py (Tokenizer.get): The tokenizer didn't
|
---|
632 | handle escaped delimiters.
|
---|
633 |
|
---|
634 | 2003-10-27 Bob Halley <halley@dnspython.org>
|
---|
635 |
|
---|
636 | * dns/resolver.py (Resolver.read_resolv_conf): If no nameservers
|
---|
637 | are configured in /etc/resolv.conf, the default nameserver
|
---|
638 | list should be ['127.0.0.1'].
|
---|
639 |
|
---|
640 | 2003-09-08 Bob Halley <halley@dnspython.org>
|
---|
641 |
|
---|
642 | * dns/resolver.py (Resolver._config_win32_fromkey): We didn't
|
---|
643 | catch WindowsError, which can happen if a key is not defined
|
---|
644 | in the registry.
|
---|
645 |
|
---|
646 | 2003-09-06 Bob Halley <halley@dnspython.org>
|
---|
647 |
|
---|
648 | * (Version 1.2.0b1 released)
|
---|
649 |
|
---|
650 | 2003-09-05 Bob Halley <halley@dnspython.org>
|
---|
651 |
|
---|
652 | * dns/query.py: Timeout support has been overhauled to provide
|
---|
653 | timeouts under Python 2.2 as well as 2.3, and to provide more
|
---|
654 | accurate expiration.
|
---|
655 |
|
---|
656 | 2003-08-30 Bob Halley <halley@dnspython.org>
|
---|
657 |
|
---|
658 | * dns/zone.py: dns.exception.SyntaxError is raised for unknown
|
---|
659 | master file directives.
|
---|
660 |
|
---|
661 | 2003-08-28 Bob Halley <halley@dnspython.org>
|
---|
662 |
|
---|
663 | * dns/zone.py: $INCLUDE processing is now enabled/disabled using
|
---|
664 | the allow_include parameter. The default is to process $INCLUDE
|
---|
665 | for from_file(), and to disallow $INCLUDE for from_text(). The
|
---|
666 | master reader now calls zone.check_origin_node() by default after
|
---|
667 | the zone has been read. find_rdataset() called get_node() instead
|
---|
668 | of find_node(), which result in an incorrect exception. The
|
---|
669 | relativization state of a zone is now remembered and applied
|
---|
670 | consistently when looking up names. from_xfr() now supports
|
---|
671 | relativization like the _MasterReader.
|
---|
672 |
|
---|
673 | 2003-08-22 Bob Halley <halley@dnspython.org>
|
---|
674 |
|
---|
675 | * dns/zone.py: The _MasterReader now understands $INCLUDE.
|
---|
676 |
|
---|
677 | 2003-08-12 Bob Halley <halley@dnspython.org>
|
---|
678 |
|
---|
679 | * dns/zone.py: The _MasterReader now specifies the file and line
|
---|
680 | number when a syntax error occurs. The BIND 8 TTL format is now
|
---|
681 | understood when loading a zone, though it will never be emitted.
|
---|
682 | The from_file() function didn't pass the zone_factory parameter
|
---|
683 | to from_text().
|
---|
684 |
|
---|
685 | 2003-08-10 Bob Halley <halley@dnspython.org>
|
---|
686 |
|
---|
687 | * (Version 1.1.0 released)
|
---|
688 |
|
---|
689 | 2003-08-07 Bob Halley <halley@dnspython.org>
|
---|
690 |
|
---|
691 | * dns/update.py (Update._add): A typo meant that _add would
|
---|
692 | fail if the thing being added was an Rdata object (as
|
---|
693 | opposed to an Rdataset or the textual form of an Rdata).
|
---|
694 |
|
---|
695 | 2003-08-05 Bob Halley <halley@dnspython.org>
|
---|
696 |
|
---|
697 | * dns/set.py: the simple Set class has been moved to its
|
---|
698 | own module, and augmented to support more set operations.
|
---|
699 |
|
---|
700 | 2003-08-04 Bob Halley <halley@dnspython.org>
|
---|
701 |
|
---|
702 | * Node and all rdata types have been "slotted". This speeds
|
---|
703 | things up a little and reduces memory usage noticeably.
|
---|
704 |
|
---|
705 | 2003-08-02 Bob Halley <halley@dnspython.org>
|
---|
706 |
|
---|
707 | * (Version 1.1.0c1 released)
|
---|
708 |
|
---|
709 | 2003-08-02 Bob Halley <halley@dnspython.org>
|
---|
710 |
|
---|
711 | * dns/rdataset.py: SimpleSets now support more set options.
|
---|
712 |
|
---|
713 | * dns/message.py: Added the get_rrset() method. from_file() now
|
---|
714 | allows Unicode filenames and turns on universal newline support if
|
---|
715 | it opens the file itself.
|
---|
716 |
|
---|
717 | * dns/node.py: Added the delete_rdataset() and replace_rdataset()
|
---|
718 | methods.
|
---|
719 |
|
---|
720 | * dns/zone.py: Added the delete_node(), delete_rdataset(), and
|
---|
721 | replace_rdataset() methods. from_file() now allows Unicode
|
---|
722 | filenames and turns on universal newline support if it opens the
|
---|
723 | file itself. Added a to_file() method.
|
---|
724 |
|
---|
725 | 2003-08-01 Bob Halley <halley@dnspython.org>
|
---|
726 |
|
---|
727 | * dns/opcode.py: Opcode from/to text converters now understand
|
---|
728 | numeric opcodes. The to_text() method will return a numeric opcode
|
---|
729 | string if it doesn't know a text name for the opcode.
|
---|
730 |
|
---|
731 | * dns/message.py: Added set_rcode(). Fixed code where ednsflags
|
---|
732 | wasn't treated as a long.
|
---|
733 |
|
---|
734 | * dns/rcode.py: ednsflags wasn't treated as a long. Rcode from/to
|
---|
735 | text converters now understand numeric rcodes. The to_text()
|
---|
736 | method will return a numeric rcode string if it doesn't know
|
---|
737 | a text name for the rcode.
|
---|
738 |
|
---|
739 | * examples/reverse.py: Added a new example program that builds a
|
---|
740 | reverse (address-to-name) mapping table from the name-to-address
|
---|
741 | mapping specified by A RRs in zone files.
|
---|
742 |
|
---|
743 | * dns/node.py: Added get_rdataset() method.
|
---|
744 |
|
---|
745 | * dns/zone.py: Added get_rdataset() and get_rrset() methods. Added
|
---|
746 | iterate_rdatas().
|
---|
747 |
|
---|
748 | 2003-07-31 Bob Halley <halley@dnspython.org>
|
---|
749 |
|
---|
750 | * dns/zone.py: Added the iterate_rdatasets() method which returns
|
---|
751 | a generator which yields (name, rdataset) tuples for all the
|
---|
752 | rdatasets in the zone matching the specified rdatatype.
|
---|
753 |
|
---|
754 | 2003-07-30 Bob Halley <halley@dnspython.org>
|
---|
755 |
|
---|
756 | * (Version 1.1.0b2 released)
|
---|
757 |
|
---|
758 | 2003-07-30 Bob Halley <halley@dnspython.org>
|
---|
759 |
|
---|
760 | * dns/zone.py: Added find_rrset() and find_rdataset() convenience
|
---|
761 | methods. They let you retrieve rdata with the specified name
|
---|
762 | and type in one call.
|
---|
763 |
|
---|
764 | * dns/node.py: Nodes no longer have names; owner names are
|
---|
765 | associated with nodes in the Zone object's nodes dictionary.
|
---|
766 |
|
---|
767 | * dns/zone.py: Zone objects now implement more of the standard
|
---|
768 | mapping interface. __iter__ has been changed to iterate the keys
|
---|
769 | rather than values to match the standard mapping interface's
|
---|
770 | behavior.
|
---|
771 |
|
---|
772 | 2003-07-20 Bob Halley <halley@dnspython.org>
|
---|
773 |
|
---|
774 | * dns/ipv6.py (inet_ntoa): Handle embedded IPv4 addresses.
|
---|
775 |
|
---|
776 | 2003-07-19 Bob Halley <halley@dnspython.org>
|
---|
777 |
|
---|
778 | * (Version 1.1.0b1 released)
|
---|
779 |
|
---|
780 | 2003-07-18 Bob Halley <halley@dnspython.org>
|
---|
781 |
|
---|
782 | * dns/tsig.py: The TSIG validation of TCP streams where not
|
---|
783 | every message is signed now works correctly.
|
---|
784 |
|
---|
785 | * dns/zone.py: Zones can now be compared for equality and
|
---|
786 | inequality. If the other object in the comparison is also
|
---|
787 | a zone, then "the right thing" happens; i.e. the zones are
|
---|
788 | equal iff.: they have the same rdclass, origin, and nodes.
|
---|
789 |
|
---|
790 | 2003-07-17 Bob Halley <halley@dnspython.org>
|
---|
791 |
|
---|
792 | * dns/message.py (Message.use_tsig): The method now allows for
|
---|
793 | greater control over the various fields in the generated signature
|
---|
794 | (e.g. fudge).
|
---|
795 | (_WireReader._get_section): UnknownTSIGKey is now raised if an
|
---|
796 | unknown key is encountered, or if a signed message has no keyring.
|
---|
797 |
|
---|
798 | 2003-07-16 Bob Halley <halley@dnspython.org>
|
---|
799 |
|
---|
800 | * dns/tokenizer.py (Tokenizer._get_char): get_char and unget_char
|
---|
801 | have been renamed to _get_char and _unget_char since they are not
|
---|
802 | useful to clients of the tokenizer.
|
---|
803 |
|
---|
804 | 2003-07-15 Bob Halley <halley@dnspython.org>
|
---|
805 |
|
---|
806 | * dns/zone.py (_MasterReader._rr_line): owner names were being
|
---|
807 | unconditionally relativized; it makes much more sense for them
|
---|
808 | to be relativized according to the relativization setting of
|
---|
809 | the reader.
|
---|
810 |
|
---|
811 | 2003-07-12 Bob Halley <halley@dnspython.org>
|
---|
812 |
|
---|
813 | * dns/resolver.py (Resolver.read_resolv_conf): The resolv.conf
|
---|
814 | parser did not allow blank / whitespace-only lines, nor did it
|
---|
815 | allow comments. Both are now supported.
|
---|
816 |
|
---|
817 | 2003-07-11 Bob Halley <halley@dnspython.org>
|
---|
818 |
|
---|
819 | * dns/name.py (Name.to_digestable): to_digestable() now
|
---|
820 | requires an origin to be specified if the name is relative.
|
---|
821 | It will raise NeedAbsoluteNameOrOrigin if the name is
|
---|
822 | relative and there is either no origin or the origin is
|
---|
823 | itself relative.
|
---|
824 | (Name.split): returned the wrong answer if depth was 0 or depth
|
---|
825 | was the length of the name. split() now does bounds checking
|
---|
826 | on depth, and raises ValueError if depth < 0 or depth > the length
|
---|
827 | of the name.
|
---|
828 |
|
---|
829 | 2003-07-10 Bob Halley <halley@dnspython.org>
|
---|
830 |
|
---|
831 | * dns/ipv6.py (inet_ntoa): The routine now minimizes its output
|
---|
832 | strings. E.g. the IPv6 address
|
---|
833 | "0000:0000:0000:0000:0000:0000:0000:0001" is minimized to "::1".
|
---|
834 | We do not, however, make any effort to display embedded IPv4
|
---|
835 | addresses in the dot-quad notation.
|
---|
836 |
|
---|
837 | 2003-07-09 Bob Halley <halley@dnspython.org>
|
---|
838 |
|
---|
839 | * dns/inet.py: We now supply our own AF_INET and AF_INET6
|
---|
840 | constants since AF_INET6 may not always be available. If the
|
---|
841 | socket module has AF_INET6, we will use it. If not, we will
|
---|
842 | use our own value for the constant.
|
---|
843 |
|
---|
844 | * dns/query.py: the functions now take an optional af argument
|
---|
845 | specifying the address family to use when creating the socket.
|
---|
846 |
|
---|
847 | * dns/rdatatype.py (is_metatype): a typo caused the function
|
---|
848 | return true only for type OPT.
|
---|
849 |
|
---|
850 | * dns/message.py: message section list elements are now RRsets
|
---|
851 | instead of Nodes. This API change makes processing messages
|
---|
852 | easier for many applications.
|
---|
853 |
|
---|
854 | 2003-07-07 Bob Halley <halley@dnspython.org>
|
---|
855 |
|
---|
856 | * dns/rrset.py: added. An RRset is a named rdataset.
|
---|
857 |
|
---|
858 | * dns/rdataset.py (Rdataset.__eq__): rdatasets may now be compared
|
---|
859 | for equality and inequality with other objects. Rdataset instance
|
---|
860 | variables are now slotted.
|
---|
861 |
|
---|
862 | * dns/message.py: The wire format and text format readers are now
|
---|
863 | classes. Variables related to reader state have been moved out
|
---|
864 | of the message class.
|
---|
865 |
|
---|
866 | 2003-07-06 Bob Halley <halley@dnspython.org>
|
---|
867 |
|
---|
868 | * dns/name.py (from_text): '@' was not interpreted as the empty
|
---|
869 | name.
|
---|
870 |
|
---|
871 | * dns/zone.py: the master file reader derelativized names in rdata
|
---|
872 | relative to the zone's origin, not relative to the current origin.
|
---|
873 | The reader now deals with relativization in two steps. The rdata
|
---|
874 | is read and derelativized using the current origin. The rdata's
|
---|
875 | relativity is then chosen using the zone origin and the relativize
|
---|
876 | boolean. Here's an example.
|
---|
877 |
|
---|
878 | $ORIGIN foo.example.
|
---|
879 | $TTL 300
|
---|
880 | bar MX 0 blaz
|
---|
881 |
|
---|
882 | If the zone origin is example., and relativization is on, then
|
---|
883 | This fragment will become:
|
---|
884 |
|
---|
885 | bar.foo.example. 300 IN MX 0 blaz.foo.example.
|
---|
886 |
|
---|
887 | after the first step (derelativization to current origin), and
|
---|
888 |
|
---|
889 | bar.foo 300 IN MX 0 blaz.foo
|
---|
890 |
|
---|
891 | after the second step (relativiation to zone origin).
|
---|
892 |
|
---|
893 | * dns/namedict.py: added.
|
---|
894 |
|
---|
895 | * dns/zone.py: The master file reader has been made into its
|
---|
896 | own class. Reader-related instance variables have been moved
|
---|
897 | form the zone class into the reader class.
|
---|
898 |
|
---|
899 | * dns/zone.py: Add node_factory class attribute. An application
|
---|
900 | can now subclass Zone and Node and have a zone whose nodes are of
|
---|
901 | the subclassed Node type. The from_text(), from_file(), and
|
---|
902 | from_xfr() algorithms now take an optional zone_factory argument.
|
---|
903 | This allows the algorithms to be used to create zones whose class
|
---|
904 | is a subclass of Zone.
|
---|
905 |
|
---|
906 |
|
---|
907 | 2003-07-04 Bob Halley <halley@dnspython.org>
|
---|
908 |
|
---|
909 | * dns/renderer.py: added new wire format rendering module and
|
---|
910 | converted message.py to use it. Applications which want
|
---|
911 | fine-grained control over the conversion to wire format may call
|
---|
912 | the renderer directy, instead of having it called on their behalf
|
---|
913 | by the message code.
|
---|
914 |
|
---|
915 | 2003-07-02 Bob Halley <halley@dnspython.org>
|
---|
916 |
|
---|
917 | * dns/name.py (_validate_labels): The NameTooLong test was
|
---|
918 | incorrect.
|
---|
919 |
|
---|
920 | * dns/message.py (Message.to_wire): dns.exception.TooBig is
|
---|
921 | now raised if the wire encoding exceeds the specified
|
---|
922 | maximum size.
|
---|
923 |
|
---|
924 | 2003-07-01 Bob Halley <halley@dnspython.org>
|
---|
925 |
|
---|
926 | * dns/message.py: EDNS encoding was broken. from_text()
|
---|
927 | didn't parse rcodes, flags, or eflags correctly. Comparing
|
---|
928 | messages with other types of objects didn't work.
|
---|
929 |
|
---|
930 | 2003-06-30 Bob Halley <halley@dnspython.org>
|
---|
931 |
|
---|
932 | * (Version 1.0.0 released)
|
---|
933 |
|
---|
934 | 2003-06-30 Bob Halley <halley@dnspython.org>
|
---|
935 |
|
---|
936 | * dns/rdata.py: Rdatas now implement rich comparisons instead of
|
---|
937 | __cmp__.
|
---|
938 |
|
---|
939 | * dns/name.py: Names now implement rich comparisons instead of
|
---|
940 | __cmp__.
|
---|
941 |
|
---|
942 | * dns/inet.py (inet_ntop): Always use our code, since the code
|
---|
943 | in the socket module doesn't support AF_INET6 conversions if
|
---|
944 | IPv6 sockets are not available on the system.
|
---|
945 |
|
---|
946 | * dns/resolver.py (Answer.__init__): A dangling CNAME chain was
|
---|
947 | not raising NoAnswer.
|
---|
948 |
|
---|
949 | * Added a simple resolver Cache class.
|
---|
950 |
|
---|
951 | * Added an expiration attribute to answer instances.
|
---|
952 |
|
---|
953 | 2003-06-24 Bob Halley <halley@dnspython.org>
|
---|
954 |
|
---|
955 | * (Version 1.0.0b3 released)
|
---|
956 |
|
---|
957 | 2003-06-24 Bob Halley <halley@dnspython.org>
|
---|
958 |
|
---|
959 | * Renamed module "DNS" to "dns" to avoid conflicting with
|
---|
960 | PyDNS.
|
---|
961 |
|
---|
962 | 2003-06-23 Bob Halley <halley@dnspython.org>
|
---|
963 |
|
---|
964 | * The from_text() relativization controls now work the same way as
|
---|
965 | the to_text() controls.
|
---|
966 |
|
---|
967 | * DNS/rdata.py: The parsing of generic rdata was broken.
|
---|
968 |
|
---|
969 | 2003-06-21 Bob Halley <halley@dnspython.org>
|
---|
970 |
|
---|
971 | * (Version 1.0.0b2 released)
|
---|
972 |
|
---|
973 | 2003-06-21 Bob Halley <halley@dnspython.org>
|
---|
974 |
|
---|
975 | * The Python 2.2 socket.inet_aton() doesn't seem to like
|
---|
976 | '255.255.255.255'. We work around this.
|
---|
977 |
|
---|
978 | * Fixed bugs in rdata to_wire() and from_wire() routines of a few
|
---|
979 | types. These bugs were discovered by running the tests/zone.py
|
---|
980 | Torture1 test.
|
---|
981 |
|
---|
982 | * Added implementation of type APL.
|
---|
983 |
|
---|
984 | 2003-06-20 Bob Halley <halley@dnspython.org>
|
---|
985 |
|
---|
986 | * DNS/rdtypes/IN/AAAA.py: Use our own versions of inet_ntop and
|
---|
987 | inet_pton if the socket module doesn't provide them for us.
|
---|
988 |
|
---|
989 | * The resolver now does a better job handling exceptions. In
|
---|
990 | particular, it no longer eats all exceptions; rather it handles
|
---|
991 | those exceptions it understands, and leaves the rest uncaught.
|
---|
992 |
|
---|
993 | * Exceptions have been pulled into their own module. Almost all
|
---|
994 | exceptions raised by the code are now subclasses of
|
---|
995 | DNS.exception.DNSException. All form errors are subclasses of
|
---|
996 | DNS.exception.FormError (which is itself a subclass of
|
---|
997 | DNS.exception.DNSException).
|
---|
998 |
|
---|
999 | 2003-06-19 Bob Halley <halley@dnspython.org>
|
---|
1000 |
|
---|
1001 | * Added implementations of types DS, NXT, SIG, and WKS.
|
---|
1002 |
|
---|
1003 | * __cmp__ for type A and AAAA could produce incorrect results.
|
---|
1004 |
|
---|
1005 | 2003-06-18 Bob Halley <halley@dnspython.org>
|
---|
1006 |
|
---|
1007 | * Started test suites for zone.py and tokenizer.py.
|
---|
1008 |
|
---|
1009 | * Added implementation of type KEY.
|
---|
1010 |
|
---|
1011 | * DNS/rdata.py(_base64ify): \n could be emitted erroneously.
|
---|
1012 |
|
---|
1013 | * DNS/rdtypes/ANY/SOA.py (SOA.from_text): The SOA RNAME field could
|
---|
1014 | be set to the value of MNAME in common cases.
|
---|
1015 |
|
---|
1016 | * DNS/rdtypes/ANY/X25.py: __init__ was broken.
|
---|
1017 |
|
---|
1018 | * DNS/zone.py (from_text): $TTL handling erroneously caused the
|
---|
1019 | next line to be eaten.
|
---|
1020 |
|
---|
1021 | * DNS/tokenizer.py (Tokenizer.get): parsing was broken for empty
|
---|
1022 | quoted strings. Quoted strings didn't handle \ddd escapes. Such
|
---|
1023 | escapes are appear not to comply with RFC 1035, but BIND allows
|
---|
1024 | them and they seem useful, so we allow them too.
|
---|
1025 |
|
---|
1026 | * DNS/rdtypes/ANY/ISDN.py (ISDN.from_text): parsing was
|
---|
1027 | broken for ISDN RRs without subaddresses.
|
---|
1028 |
|
---|
1029 | * DNS/zone.py (from_file): from_file() didn't work because
|
---|
1030 | some required parameters were not passed to from_text().
|
---|
1031 |
|
---|
1032 | 2003-06-17 Bob Halley <halley@dnspython.org>
|
---|
1033 |
|
---|
1034 | * (Version 1.0.0b1 released)
|
---|
1035 |
|
---|
1036 | 2003-06-17 Bob Halley <halley@dnspython.org>
|
---|
1037 |
|
---|
1038 | * Added implementation of type PX.
|
---|
1039 |
|
---|
1040 | 2003-06-16 Bob Halley <halley@dnspython.org>
|
---|
1041 |
|
---|
1042 | * Added implementation of types CERT, GPOS, LOC, NSAP, NSAP-PTR.
|
---|
1043 |
|
---|
1044 | * DNS/rdatatype.py (_by_value): A cut-and-paste error had broken
|
---|
1045 | NSAP and NSAP-PTR.
|
---|
1046 |
|
---|
1047 | 2003-06-12 Bob Halley <halley@dnspython.org>
|
---|
1048 |
|
---|
1049 | * Created a tests directory and started adding tests.
|
---|
1050 |
|
---|
1051 | * Added "and its documentation" to the permission grant in the
|
---|
1052 | license.
|
---|
1053 |
|
---|
1054 | 2003-06-12 Bob Halley <halley@dnspython.org>
|
---|
1055 |
|
---|
1056 | * DNS/name.py (Name.is_wild): is_wild() erroneously raised IndexError
|
---|
1057 | if the name was empty.
|
---|
1058 |
|
---|
1059 | 2003-06-10 Bob Halley <halley@dnspython.org>
|
---|
1060 |
|
---|
1061 | * Added implementations of types AFSDB, X25, and ISDN.
|
---|
1062 |
|
---|
1063 | * The documentation associated with the various rdata types has been
|
---|
1064 | improved. In particular, instance variables are now described.
|
---|
1065 |
|
---|
1066 | 2003-06-09 Bob Halley <halley@dnspython.org>
|
---|
1067 |
|
---|
1068 | * Added implementations of types HINFO, RP, and RT.
|
---|
1069 |
|
---|
1070 | * DNS/message.py (make_query): Document that make_query() sets
|
---|
1071 | flags to DNS.flags.RD, and chooses a random query id.
|
---|
1072 |
|
---|
1073 | 2003-06-05 Bob Halley <halley@dnspython.org>
|
---|
1074 |
|
---|
1075 | * (Version 1.0.0a2 released)
|
---|
1076 |
|
---|
1077 | 2003-06-05 Bob Halley <halley@dnspython.org>
|
---|
1078 |
|
---|
1079 | * DNS/node.py: removed __getitem__ and __setitem__, since
|
---|
1080 | they are not used by the codebase and were not useful in
|
---|
1081 | general either.
|
---|
1082 |
|
---|
1083 | * DNS/message.py (from_file): from_file() now allows a
|
---|
1084 | filename to be specified instead of a file object.
|
---|
1085 |
|
---|
1086 | * DNS/rdataset.py: The is_compatible() method of the
|
---|
1087 | DNS.rdataset.Rdataset class was deleted.
|
---|
1088 |
|
---|
1089 | 2003-06-04 Bob Halley <halley@dnspython.org>
|
---|
1090 |
|
---|
1091 | * DNS/name.py (class Name): Names are now immutable.
|
---|
1092 |
|
---|
1093 | * DNS/name.py: the is_comparable() method has been removed, since
|
---|
1094 | names are always comparable.
|
---|
1095 |
|
---|
1096 | * DNS/resolver.py (Resolver.query): A query could run for up
|
---|
1097 | to the lifetime + the timeout. This has been corrected and the
|
---|
1098 | query will now only run up to the lifetime.
|
---|
1099 |
|
---|
1100 | 2003-06-03 Bob Halley <halley@dnspython.org>
|
---|
1101 |
|
---|
1102 | * DNS/resolver.py: removed the 'new' function since it is not the
|
---|
1103 | style of the library to have such a function. Call
|
---|
1104 | DNS.resolver.Resolver() to make a new resolver.
|
---|
1105 |
|
---|
1106 | 2003-06-03 Bob Halley <halley@dnspython.org>
|
---|
1107 |
|
---|
1108 | * DNS/resolver.py (Resolver._config_win32_fromkey): The DhcpServer
|
---|
1109 | list is space separated, not comma separated.
|
---|
1110 |
|
---|
1111 | 2003-06-03 Bob Halley <halley@dnspython.org>
|
---|
1112 |
|
---|
1113 | * DNS/update.py: Added an update module to make generating updates
|
---|
1114 | easier.
|
---|
1115 |
|
---|
1116 | 2003-06-03 Bob Halley <halley@dnspython.org>
|
---|
1117 |
|
---|
1118 | * Commas were missing in some of the __all__ entries in various
|
---|
1119 | __init__.py files.
|
---|
1120 |
|
---|
1121 | 2003-05-30 Bob Halley <halley@dnspython.org>
|
---|
1122 |
|
---|
1123 | * (Version 1.0.0a1 released)
|
---|