File: Changelog

package info (click to toggle)
dnsjava 2.1.8-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 1,576 kB
  • ctags: 3,804
  • sloc: java: 24,727; xml: 350; makefile: 34
file content (1677 lines) | stat: -rw-r--r-- 51,646 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1/3/2017:
	- 2.1.8 released

8/13/2016:
	- Add a Message constructor taking a ByteBuffer, and convert the
	  DNSInput class to use a ByteBuffer internally.
	  (patch from Marrache Mickael <mickoo95@users.sf.net>)
	- Add support for the OPENPGPKEY record.
	  (patch from Valentin Hauner <vh@hnr.name>)
	- Add support for the SMIMEA record.

11/25/2015:
	- Add support for the CAA record.

8/21/2015:
	- Convert the TSIG code from using a custom HMAC implementation to
	  the one in javax.crypto.Mac.
	  (patch from Nick Sayer <nsayer@silverspringnet.com>)

4/21/2015:
	- Update the URI record implementation to match the latest spec.
	  (patch from Anthony Kirby <anthonykirby@users.sf.net>)

2/15/2015
	- 2.1.7 released

2/14/2015
	- Attempt to deal with Java's poor handling of IPv4-mapped IPv6
	  addresses. (reported by Keshav Badruka <keshav.badruka@gmail.com>)

12/23/2014
	- Add an interface for logging sent/received packets.
	  (based on a patch from Damian Minkov <damencho@users.sf.net>)
	- Add support for the URI record.
	  (patch from Anthony Kirby <anthonykirby@users.sf.net>)

12/22/2014
	- Fix message truncation to preserve the OPT record.
	  (based on a patch from Klaus Malorny <Klaus.Malorny@knipp.de>)
	- Properly deal with short DSA and ECDSA keys.  (original patch from
	  Marcos Sanz <sanz@denic.de>, with some local modifications)
	- Add support for GOST (RFC 5933) to DNSSEC.  Using GOST requires an
	  external cryptography provider, such as BouncyCastle.
	  (original patch from Marcos Sanz <sanz@denic.de>, with some
	  local modifications)
	- Change the OPTRecord equals() method to check TTL, since the TTL
	  field holds relevant information.  (based on a patch from
	  Dr. Christian M�ller <cmoeller@users.sourceforge.net>)
	- Printing an empty RRset would incorrectly throw an exception.

10/14/2013
	- 2.1.6 released
	- Address.getByName() and Address.getAllByName() had incomplete IPv6
	  support; they wouldn't issue AAAA queries.
	  (reported by C�dric Braem <cbr@internetvista.com>)

10/07/2013
	- Improve the name server detection code for Android.
	  (patch from Florian Schmaus <fschmaus@gmail.com>, based on
	   stackoverflow.com/a/11362271/194894).

08/07/2013
	- Change the edns-client-subnet option to use the officially defined
	  option code.

07/29/2013
	- SIG(0) signatures were incorrectly generated in some cases.
	  (patch from Tekto <tekto@geekr.de>)
	- Add NoSignature exception, thrown when attempting to validate a
	  SIG(0) in a message without one.

05/04/2013
	- The Name(String s, Name origin) constructor copies too many labels
	  when origin has been created by stripping a label.
	  (patch from Ingo Bauersachs <ingo@jitsi.org>)

04/10/2013
	- Fix Name.isAbsolute() to check that the length of the last label is
	  0, not that the last byte of the name is 0.

04/10/2013
	- 2.1.5 released

03/18/2013
	- Fix DS generation to canonicalize the DNSKEY owner name.
	  (patch from Ingo Bauersachs <ingo@jitsi.org>)

02/19/2013
	- Add Name.canonicalize() and Name.toString() variant for omitting the
	  final dot in an absolute name.

01/04/2013
	- 2.1.4 released

10/25/2012
	- Fix the Message constructor to not raise a ClassCastException when a
	  SIG or TSIG record is seen in the question section.
	  (patch from Klaus Malorny <Klaus.Malorny@knipp.de>)

9/4/2012
	- Add support for RFC 6605: Elliptic Curve Digital Signature
	  Algorithm (DSA) for DNSSEC. (original patch from
	  Marcos Sanz <sanz@denic.de>, with some local modifications)

8/31/2012
	- Add support for the TLSA record type.
	- Pass hostnames to InetAddress.getByAddress where possible.
	  (patch from Ingo Bauersachs <ingo.bauersachs@fhnw.ch>)

11/15/2011
	- Fix the ZoneTransferIn object to properly report AXFRs; this was
	  broken by the changes in 2.1.3.
	  (reported by Thomas Corte <Thomas.Corte@knipp.de>)

11/3/2011
	- Update DSRecord constructor from DNSKEYRecord to generate the
	  correct digest.
	  (patch from Marty Kube <marty@beavercreekconsulting.com>)

	- Also update the signature of the DSRecord constructor from
	  DNSKEYRecord to not take the key's footprint as a parameter, as it
	  can be derived from the key.

10/24/2011
	- 2.1.3 released

10/17/2011
	- Add a callback interface to ZoneTransferIn.
	  (based on a patch from Nick Sayer <nsayer@silverspringnet.com>)

10/10/2011
	- An exception could be thrown when attempting to look up data in the
	  cache for type ANY when there were only previously cached
	  NOERROR/NODATA responses for that name.
	  (reported by Niel de Wet <nieldw@gmail.com>)

7/24/2011
	- 2.1.2 released

6/9/2011
	- TypeBitmap.toString() failed if no bits were set.
	  (patch from Jeffrey Damick <Jeffrey.Damick@neustar.biz>)

5/24/2011
	- TSIG.fromString() didn't handle base64-encoded secrets with /
	  characters. (reported by Sten <stennordstrom@users.sourceforge.net>)

5/12/2011
	- Support verifying truncated TSIG signatures, as specified in RFC
	  4635.

5/10/2011
	- Refactor EDNS Option support to allow for custom type
	  implementations, and add support for the Client Subnet option.
	  (based on a patch from Ming Zhou <mizhou@bnivideo.com>)

	- Add support for the NSID EDNS option.

4/20/2011
	- Add missing support for the HMAC-SHA224, HMA-SHA384, and HMAC-SHA384
	  TSIG algorithms. (patch from Thomas Corte <Thomas.Corte@knipp.de>)

3/9/2011
	- Add support for using alternate JCA providers when generating DNSSEC
	  signatures (patch from Jeffrey Damick <Jeffrey.Damick@neustar.biz>)

2/9/2011
	- 2.1.1 released

2/3/2011
	- Add the ability to set ndots on Lookup objects, and parse the ndots
	  option from a resolv.conf file (patch from Oleg Tsvinev
	  <Oleg.Tsvinev@Reardencommerce.com>).

2/3/2011
	- The 'file' command in the 'update' program didn't work correctly.
	  (reported by Olafur Gudmundsson <ogud@ogud.com>)

9/15/2010
	- Change the Android name server detection mechanism to avoid false
	  positives. (patch from Ulf Dittmer)

9/9/2010
	- The IXFR code didn't do serial number arithmetic correctly, and would
	  fail if the serial number wrapped.
	  (patch from Alexis MacFarlane <Alexis.MacFarlane@usc-bt.com>)

9/7/2010
	- 2.1.0 released

8/17/2010
	- When rendering a message, if records from the additional section did
	  not fit, the header counts were not properly updated.
	  (patch from Klaus Malorny <Klaus.Malorny@knipp.de>)

7/22/2010
	- Fix LOC record parsing to allow negative altitudes.
	  (based on a patch from William Kocik <wkocik@verisign.com>)

7/21/2010
	- The changes to TSIG verification in 2.0.6 didn't work correctly for
	  stream verification; specifically, the state was only set on the
	  first Message in the stream.
	  (reported by William Kocik <wkocik@verisign.com>)

5/12/2010
	- Add support for determining resolver configuration on
	  Japanese Windows.  (translation and original patch from
	  Brett Wooldridge <brettw@users.sourceforge.net>)

5/6/2010
	- Add support for building an OSGi bundle (patch from
	  Markus Alexander Kuppe <lemmster@users.sourceforge.net>).

5/2/2010
	- Rewrite DNSSEC support.

4/15/2010
	- Fix a hang that could occur when using the dnsjava service provider
	  on Windows (initial patch from <jy123@users.sourceforge.net>).

11/21/2009
	- 2.0.8 released

11/10/2009
	- Fix the conversion of NSEC/NSEC3 bitmaps into wire format.
	  (Klaus Malorny <Klaus.Malorny@knipp.de>, also reported by
	  Tom <808131@gmail.com>).

10/01/2009
	- Properly initialize the Date objects used in RRSIG (and other)
	  records, so that any unused fields are cleared.
	  (Klaus Malorny <Klaus.Malorny@knipp.de>)

9/25/2009
	- 2.0.7 released
	- Add support for detecting the configured nameservers on the Android
	  platform.  (patch from Arnt Gulbrandsen <arnt@gulbrandsen.priv.no>)

9/16/2009
	- When determining the nameservers to use, if the
	  sun.net.dns.ResolverConfiguration class returns an empty list, ignore
	  it. (based on an anonymous patch).
	- Make the Name, Record (and all subclasses), RRset, and Zone classes
	  implement Serializable.
	  (based on a patch from Patrick <psp294@users.sourceforge.net>)

9/15/2009
	- Add a constant for the REVOKE DNSKEY flag.
	  (patch from Wolfgang Nagele <dreamguard@users.sourceforge.net>)
	- ReverseMap.fromAddress(String) should support both IPv4 and IPv6
	  addresses.
	  (reported by Stephan Fuhrmann <stfu1und1@users.sourceforge.net>)

8/08/2009
	- The escaping code for text strings should not escape semicolons.

6/23/2009
	- DNSSEC signature validation incorrectly used the TTL of the records
	  being verified, not the original TTL from the RRSIG record, which
	  caused failures when verifying records returned by a caching server.
	  (reported by Samuel Benz <samuel.benz@switch.ch>)

6/15/2009
	- Change the ResolverConfig.refresh() method to only synchronize the
	  assignment to currentConfig, not the code which determines the new
	  configuration.

6/12/2009
	- The TSIG verification routines (TSIG.verify,
	  TSIG.StreamVerifier.verify() now update the Message object with the
	  status of the verification in addition to returning the status.
	
6/03/2009
	- The lists of servers and searchlist entries in ResolverConfig should
	  not be static.
	  (Isabelle Dalmasso <isa@8x8.com>)

5/28/2009
	- The canonical form of an NSEC record was incorrectly computed - the
	  next name should not have its case changed.
	  (David Blacka <davidb@verisign.com>)

	- Add support for NSEC3, NSEC3PARAM, and DLV records.
	  (based on a patch from David Blacka <davidb@verisign.com>)

9/17/2008
	- Fix LOC record rounding.
	  (reported by Klaus Malorny <Klaus.Malorny@knipp.de>)

8/22/2008
	- Type 4 NXDOMAIN responses were incorrectly cached as referrals.
	  (reported by Luis Silva <luisfilsilva@gmail.com>)

8/06/2008
	- Randomize the UDP source ports for outgoing queries.
	  (based on a patch from Derek Morr <derekmorr@psu.edu>)

4/25/2008
	- Add support for the DHCID record.

4/18/2008
	- The prior change to allow creating Zones from AXFR-style IXFR
	  ZoneTransferIn responses didn't work.
	- Update the service provider to work with Java 1.6 and earlier
	  versions. (patch from <thelian@users.sourceforge.net>)

2/19/2008
	- The Zone.removeRecord() method threw an exception if there were no
	  other records in the same RRset.
	  (reported by Yoyo Chen <yoyochen@sinter.com.tw>)

	- Parsing and formatting LOC records should not depend on the current
	  locale. (reported by Klaus Malorny <Klaus.Malorny@knipp.de>)

1/31/2008
	- When converting messages to wire format, don't include name
	  compression pointers greater than 2^14 - 1.
	  (reported by Carole Gill <cgill@silverspringnet.com>)

1/24/2008
	- 2.0.6 released

1/22/2008
	- Fix an off-by-2 error that could cause an infinite loop when
	  parsing a Name with a self-referential compression pointer.
	  (reported by Carole Gill <cgill@silverspringnet.com>)

	- Raise an exception when an invalid label type is seen in a wire
	  format name.  The previous behavior would incorrectly parse invalid
	  names, and could lead to infinite loops.
	  (reported by Carole Gill <cgill@silverspringnet.com>)

8/28/2007
	- 2.0.5 released
	- Add the ZoneTransferIn.setLocalAddress() method.  (based on a patch
	  from <mpugge@users.sourceforge.net>)
	- Build jar file with -source and -target options to provide
	  compatibility with older Java releases (that is, revert to
	  pre-2.0.4 behavior).
	  (reported by Stefano Bagnara <apache@bago.org>)

8/26/2007
	- 2.0.4 released
	- Update SPI code to work with java 6.
	- Fix an argument parsing bug in the dig program, where failure to
	  specify both type and class would cause the specified server to
	  be ignored.
	  (reported by Stefano Bagnara <bago75@users.sourceforge.net>)

6/12/2007
	- The SPFRecord constructors incorrectly created records whose
	  internal type field was TXT, not SPF.
	  (reported by Stefano Bagnara <bago75@users.sourceforge.net>)

3/7/2007
	- Message.getQuestion() incorrectly handled the case where the
	  question section was represented by an empty list.
	  (reported by Karl Auer <kauer@biplane.com.au>)

2/15/2007
	- Properly obey timeouts in TCPClient code when the message is
	  read in multiple chunks. (based on a patch from
	  Francesco Vivoli <fvivoli@ripe.net>)

12/4/2006
	- A cache lookup for a record would incorrectly return a delegation
	  when records for both the queried type and NS were present.
	  (reported by yosukear <y_arimoto_acare@users.sourceforge.net>)

11/28/2006
	- 2.0.3 released

11/27/2006
	- The Zone.fromXFR() method should be able to create zones
	  from AXFR-style IXFR responses.
	  (Bill Kuker <bkuker@users.sourceforge.net>)

10/25/2006
	- Make the routines that convert between the DNS and standard Java
	  representations of DSA signatures public.
	  (suggested by Klaus Malorny <Klaus.Malorny@knipp.de>)

8/3/2006
	- Add a TSIG constructor that takes an algorithm as a String.
	- Add support to TSIG.fromString() for specifying an algorithm.

7/30/2006
	- When converting a PublicKey to a DNS record, allow the algorithm
	  to be specified, as RSA keys can be either of the RSA-SHA1 or
	  RSA-MD5 algorithms (based on a patch from
	  Eric <ginipginob@users.sourceforge.net>)
	- When converting a PublicKey to a DNS record, allow the type (KEY
	  or DNSKEY) to be specified.
	- Update the DNSSECVerifier code to use DNSKEY records, not KEY
	  records.

7/30/2006
	- Added support for parsing the output of ipconfig in French .
	  (Frederic Bazin <fbazin@users sourceforge.net>)

7/30/2006
	- If both "search" and "domain" lines are present in a resolv.conf
	  file, the domain line should be ignored.

7/26/2006
	- Add support for the SPF record type.

7/21/2006
	- DNSSEC.digestRRset could digest records in the wrong order.
	  (reported by David Blacka <davidb@verisignlabs.com> and
	   Mahendra Jain <Majain@verisign.com>)

6/26/2006
	- 2.0.2 released.

6/22/2006
	- Add support for the IPSECKEY record type.

5/18/2006
	- The result of a Lookup that involves a CNAME should include
	  the queried name as one of the aliases, not the CNAME target.
	  (Jon Lachelt <jon.lachelt@hp.com>)

2/13/2006
	- Loading zones containing RRsets with multiple records didn't work.
	  (reported by Olafur Gudmundsson" <ogud@ogud.com>)

1/24/2006
	- AXFR requests could leak file descriptors if the connection
	  failed. (Can Bican <can@bican.net>)

11/30/2005
	- Add a Resolver.setTimeout(int secs, int msecs) method.
	  (requested by Dmitry Isakbayev) <isakdim@users.sourceforge.net>)

11/30/2005
	- 2.0.1 released.

11/11/2005
	- The InetAddresses returned by Address.getByName() should have their
	  hostname copied from the input parameter.
	  (reported by Praveen Tammana <praveen.public@gmail.com>)

11/7/2005
	- Update remaining DNSSEC code to be compliant with the current spec.

11/6/2005
	- Add a Resolver.setEDNS(int level, int payloadSize, int flags,
	  List options) method, to allow a Resolver to automatically set
	  the DO flag, as well as future EDNS features.
	  (requested by Rick Wesson <wessorh@ar.com>)

10/25/2005
	- The Master(InputStream in, Name origin) constructor should not
	  always fail.
	- Correctly handle the case where reading a Master from an InputStream
	  would throw a NullPointerException if a $INCLUDE file wasn't found.
	  (reported by Lars Petrus <Lars.Petrus@nominum.com>)

8/22/2005
	- Add Address.getByAddress(String) and
	  Address.getByAddress(String, family).

7/21/2005
	- Zone.findExactMatch() would throw a NullPointerException if the
	  name didn't exist.
	  (reported by Hans Zandbelt <Hans.Zandbelt@telin.nl>)

7/19/2005
	- Add support for binding clients to local addresses when using
	  a SimpleResolver.  Also add the -b option to the dig program
	  to test this. (based on a patch by Bruno Dillenseger)

7/5/2005
	- Add support to ResolverConfig for using the undocumented
	  sun.net.dns.ResolverConfiguration class to determine the list
	  of nameservers and search path; make this the default when
	  it works (Yannick Meudal <yannick@meudal.net>).

6/16/2005
	- The inbound zone transfer code failed to treat port 0 as the
	  default as it claimed to. (Bill Kuker <wckits@rit.edu>)

6/15/2005
	- When doing a zone transfer with a SimpleResolver object, the
	  timeout was not properly obeyed.
	  (reported by Peter Bryant <peter@pingability.com>)

6/5/2005
	- Explictly register record type implementations instead of
	  using reflection; this should prevent hard to diagnose
	  problems resulting from partial compilation.

5/31/2005
	- 2.0.0 released.

5/16/2005
	- Fix the code to deal with TTL 0 data in the Cache.

5/15/2005
	- Add unit tests for many classes.  The unit tests are located
	  in the tests directory, which mirrors the org.xbill.DNS hierarchy.
	  (Matt Rutherford <rutherfo@cs.colorado.edu>)

5/7/2005
	- Fix several problems with empty names.
	  (Matt Rutherford <rutherfo@cs.colorado.edu>)  

4/23/2005
	- As per RFC 2181, the maximum allowed TTL value is 0x7FFFFFFF.
	  Change TTL.parseTTL() to reflect this by silently clamping
	  larger 32 bit values.

4/22/2005
	- Attempting to get the name/type/class/ttl of an empty RRset
	  throws an exception.

4/21/2005
	- Remove RRset.getSecurity()/.setSecurity().

4/16/2005
	- Change the internal representation of empty records (that is,
	  records in the question section of a message or meta-records
	  used in dynamic update).
	- Minor cleanups to the Mnemonic class.
	  (Matt Rutherford <rutherfo@cs.colorado.edu>)

4/3/2005
	- Change the Cache from being periodically cleaned to being
	  size-bounded.  (based on a patch from several years ago
	  from Joseph Shraibman <jks@iname.com>).
	- Remove the FindServer class.
	- Added a Name Service Provider interface (dns,dnsjava).
	  (based on code from Paul Cowan <pwc21@yahoo.com>)

4/1/2005
	- Use java.nio classes for sockets internally, which provide a
	  number of improvements, most visibly improved timeouts.
	- Remove deprecated dns class.
	- Simplify TSIG initialization; remove functions that should
	  have never existed.
	- Remove Cache.setVerifier() and Cache.setSecurePolicy().  There
	  should be a way of enabling DNSSEC, but the existing code doesn't
	  work.
	- Change the Zone constructors/factory methods to be consistent.

3/29/2005
	- Use java.net.InetAddress for IPv6 addresses rather than a custom
	  class.

3/20/2005
	- Fix several bugs in ResolverConfig on Windows.
	  (Brian McBarron <bmcbarron@users.sourceforge.net>)

3/15/2005
	- Clean up the synchronization in the RRset class
	  (reported by Daniel Jensen <daniel.jensen@savvis.net>)

3/8/2005
	- Support the BIND misfeature of loading zones with no explicit
	  TTL by using the SOA minimum field.

3/7/2005
	- 1.6.6 released.

3/6/2005
	- $GENERATE statements should obey the start field.

3/1/2005
	- Add support for HMAC-SHA1 and HMAC-SHA256 TSIG algorithms.
	  (suggested by Olafur Gudmundsson <ogud@ogud.com>)

2/8/2005
	- Add infrastructure for parsing the output of ipconfig on
	  non-English version of windows, and add support for German
	  and Polish. (based on a patch by Piotr Kochanski)

2/7/2005
	- Add Options.refresh() (based on a patch from Th Kuhne)
	- Add the ResolverConfig class, which is largely based on the
	  FindServer class, except that it's not all static methods.
	  Add the ability to refresh the current ResolverConfig, and
	  make FindServer use ResolverConfig.
	- Add Lookup.refreshDefault (based on a patch from Th Kuhne)
	- Truncated messages aren't guaranteed to parse properly, so shouldn't
	  throw exceptions. (reported by Caleb Richardson <caleb@everyone.net>)
	- Work around a TCP bug in whatever broken nameserver Enom is using.
	  (reported by Caleb Richardson <caleb@everyone.net>)

2/4/2005
	- 1.6.5 released.
	- Records of an unknown type and length 0 weren't handled properly.
	  (reported by Olafur Gudmundsson <ogud@ogud.com>)
	- Fixed a bug in $INCLUDE handling.
	  (Christian Sepulveda <christian.sepulveda@nominum.com>)

2/3/2005
	- The Lookup.run() method should be usable more than once on a Lookup
	  object.
	  (reported by Joseph Shraibman <jks@iname.com>)

10/31/2004
	- Add partial IPv6 support to the ReverseMap class.
	  (based on a patch from Th Kuhne)

7/7/2004
	- Implement the $GENERATE master file directive.

6/28/2004
	- Canonicalizing a name created with the Name(Name src, int n)
	  constructor caused an exception.
	  (based on a patch from Nigel Tamplin <nigel@metica.com>)
	- Concatenating names caused an exception when the prefix was created
	  with the Name(Name src, int n) constructor.
	  (reported by Nigel Tamplin <nigel@metica.com>)

6/22/2004
	- The DNSSEC digesting code shouldn't throw ClassCastExceptions.
	  (reported by Mike StJohns <Mike.StJohns@nominum.com>)
	- The label count in a generated SIG/RRSIG record was off by one.
	  (Mike StJohns <Mike.StJohns@nominum.com>)

6/8/2004
	- Rcode 4 is NOTIMP, not NOTIMPL.

6/5/2004
	- Fixes to LOCRecord.

6/3/2004
	- 1.6.4 released.

5/26/2004
	- Properly handle text mnemonics in KEY records.
	- Add support for the APL record type.

5/25/2004
	- Fix a bug where parsing the text format of an NSEC record
	  incorrectly parsed one token too many.

5/18/2004
	- 1.6.3 released.

5/11/2004
	- Don't store the number of labels in a Name in a byte, as the maximum
	  value (128) cannot be stored in a byte.

5/9/2004
	- Add support for options within an OPTRecord (loosely based on
	  a patch from Madhu Siddalingaiah <madhu@madhu.com>)

4/18/2004
	- Add support for the SSHFP record type.
	- Fix a bug in the zone code which would cause record lookups to fail.

4/10/2004
	- When parsing paster files, handle the fact that class and ttl may
	  be in either order.

4/8/2004
	- The opcode field in the DNS header was incorrectly parsed; this
	  would affect messages with opcodes other than QUERY.
	  (Madhu Siddalingaiah <madhu@madhu.com>)

3/20/2004
	- 1.6.2 released.
	- Lookups could return "referral" instead of "host not found" in some
	  cases.

3/18/2004
	- Fix NullPointerExceptions caused by bad empty Record handling.
	  (reported by Dharmveer Jain <dharmveer_jain@yahoo.com>)

3/16/2004
	- 1.6.1 released.
	- When loading master files with $INCLUDE statements, the included
	  files should be opened relative to the current directory, not
	  the directory of the parent file.

3/12/2004
	- Make it possible to use a Tokenizer without leaving files open.

3/4/2004 - 3/12/2004
	- Add support for more record types (AFSDB, GPOS, ISDN, MB, MD, MF, MG,
	  MINFO, MR, NSAP, NSAP-PTR, NULL, PX, RT, WKS, X25).

3/3/2004
	- Cached NXDOMAINs were ignored, which caused extra queries to
	  be sent (reported by Damon Hart-Davis <d@hd.org>).

2/25/2004
	- Attempting to load a zone without specifying an origin failed.

2/24/2004
	- 1.5.2 released.

2/3/2004
	- Message.isSigned() should return true if we signed the Message
	  with a TSIG.
	  (reported by Shobana Sampath <shobanas@cisco.com>)
	- Implement NSEC, DNSKEY, and RRSIG record types.  (loosely based on
	  a patch from David Blacka <davidb@verisignlabs.com>).
	- Change the representations of sections, rcodes, opcodes, flags,
	  and credibility to int.

1/28/2004
	- Attempt to better deal with OutOfMemoryErrors when creating
	  threads during the resolution process.
	  (reported by Joseph Shraibman <jks@iname.com>)

1/27/2004
	- Change the representation of a TSIG error from a byte to an int.
	- Improve error messages from failed Lookups; treat SERVFAIL
	  as a temporary failure, not an unrecoverable error.
	  (Joseph Shraibman <jks@iname.com>)

1/16/2004
	- The master file reader should propagate TTLs through $INCLUDE
	  statements. (David Blacka <davidb@verisignlabs.com>)

1/12/2004
	- Add a MANIFEST to the jar file containing implementation name and
	  version. (Harel Efraim <harel.efraim@nominum.com>)

1/11/2004
	- Fix a couple minor bugs found by FindBugs
	  (http://www.cs.umd.edu/~pugh/java/bugs/)

1/8/2004
	- 1.5.1 released.
	- LOC records weren't parsed correctly.
	  (reported by Harel Efraim <harel.efraim@nominum.com>)
	- Lines with only whitespace in master files should be ignored.

12/15/2003
	- TTLs weren't handled properly in the master file parser.
	  (Jack Tavares <tavares@drizzle.com>)

12/11/2003
	- 1.5.0 released.

12/8/2003
	- Change to the BSD license.
	- Replace the deprecated Name(String) and Name(String, Name)
	  constructors with new versions that properly return exceptions.

12/6/2003
	- Make the J2SE javadoc link a property in build.xml.  (Ville Skytt�)

11/24/2003
	- Lookup should check that the name, type, and class in the question
	  section of a response match that of the query.
	- SimpleResolver should check that the message id of the response
	  is the same as the message id of the query.  On a sufficiently
	  busy client, sockets can be reused fast enough that late responses
	  can come in, and should be ignored.
	  (seen by Joseph Shraibman <jks@iname.com>)

11/17/2003
	- The Lookup code didn't handle CNAMEs pointing at nonexistant names.
	  (reported by Joseph Shraibman <jks@iname.com>)

11/11/2003
	- Store a weak reference to the Cache in the CacheCleaner thread, and
	  kill the thread when the Cache is finalized.
	  (suggested by Joseph Shraibman <jks@iname.com>)

	- When a Lookup uses a null cache, the temporary cache it creates
	  should not have a CacheCleaner thread.
	  (based on a suggestion by Joseph Shraibman <jks@iname.com>)

10/31/2003
	- Record.hashCode() didn't return consistent hash codes, and didn't
	  ignore the TTL (which it should, and which Record.equals() does).

10/27/2003
	- DNS TTLs and other 32 bit unsigned values are now represented as
	  longs, not ints.  This is an API change, but allows the full range
	  to be used.
	- Add the Serial class for serial arithmetic.

9/30/2003
	- 1.4.3 released.
	- Fix a bit of code that required Java 1.4.

9/29/2003
	- 1.4.2 released.

9/26/2003
	- A Lookup shouldn't die when receiving a referral response; it should
	  return an error. (reported by Elinor Chang <elinor_chang@yahoo.com>)
	- A Lookup should distinguish between timeouts and other network
	  errors.
	- When parsing IP addresses from text format, treat the presence of
	  a leading zero on an octet as an error.  It's unclear whether
	  it would be treated as decimal or octal, which means it should
	  be fixed. (reported by Marcos Sanz/Denic <sanz@denic.de>)

9/17/2003
	- Fix an off-by-one error in the Name code; labels of length 63
	  were not accepted (patch from David Blacka <davidb@verisignlabs.com>)

9/2/2003
	- 1.4.1 released.

9/1/2003
	- The Update.delete(Record) method needs to reset the TTL of the cloned
	  record to 0. (reported by Edwin R. Rivera <erivera@moniker.com>)

8/23/2003
	- Change Record.fromString() to expect an EOL/EOF token at the end
	  of the string, so that extraneous tokens can be detected.  The master
	  file parser was updated to this change.
	  (noticed by Bob Halley <bob.halley@nominum.com>)

8/22/2003
	- Changing TXTRecord.getStrings() from returning a List of Strings
	  to a List of byte []'s was a bad idea.  Change it back, and
	  add TXTRecord.getStringsAsByteArrays().
	  (reported by Blake Ramsdell <blake@brutesquadlabs.com>)

8/21/2003
	- 1.4.0 released.

8/20/2003
	- Add the ReverseMap class, which contains functions to construct
	  names to be used in reverse map zones.

8/13/2003
	- When looking up a one label unqualified name which fails to match
	  all searchlist entries, don't append the root label and try again.
	  This is recommended by RFC 1536, section 6: "Only if the name, so
	  generated, returns an NXDOMAIN is the original name tried as a Fully
	  Qualified Domain Name. And only if it contains at least one period."

7/18/2003
	- Remove lots of unused imports. (Jared Richardson <jaredr@nc.rr.com>)

7/14/2003
	- Fix a long-existing bug where empty records (in update messages)
	  were incorrectly handled
	  (reported by Kevin C Miller <kevinm@andrew.cmu.edu>

6/22/2003
	- DNS types and classes are now represented as ints, not shorts.
	  This is an API change, but allows the full type/class range
	  to be used.

6/18/2003
	- Quoted strings didn't handle \ddd escapes.

6/17/2003
	- Fix an ArrayIndexOutofBoundsException triggered by load balancing
	  in the ExtendedResolver.
	  (reported by Norbert Desautels <ndesautels@gdgsystems.com>)

6/1/2003
	- Add the Name.relativize() method to convert an absolute name to
	  a name relative to a specified origin.
	- Add the Update class, which contains helper routines used to
	  construct dynamic update messages.

5/28/2003
	- Replace org.xbill.DNS.utils.MyStringTokenizer with
	  org.xbill.DNS.Tokenizer, which is a far more robust and correct
	  DNS tokenizer.  Convert everything to use it.
	- Fix text format of TXT, NAPTR, and HINFO records.

5/28/2003
	- When constructing a record, check that all names are absolute.

5/27/2003
	- 1.3.3 released.

4/26/2003
	- The master file parser should accept BIND format TTLs.

4/10/2003
	- The Inet6Address class incorrectly parsed some addresses.
	  (reported by steve weiland <steve@widge.net>)

4/7/2003
	- Records were not sorted properly (reported by
	  Joseph K Shraibman <jks@akula.com>)

4/2/2003
	- Fix off-by-one error in Name.compareTo (David Blacka)

3/30/2003
	- Add the ZoneTransferIn class, which performs incoming AXFR/IXFR
	- Make TSIG verification of multiple-message responses reentrant.
	- Fix incorrect string quoting.
	- Make records print on a single line by default; add the 'multiline'
	  option to use the more verbose format.

3/17/2003
	- Make the routine that converts an IP address from a string
	  more efficient and correct.
	  (based on a patch by Sean O'Neil <SeanO@telemate.net>)

2/12/2003
	- Fix an infinite loop that could occur when processing a response
	  containing a CNAME loop and an rcode of NOERROR.
	  (reported by Sean O'Neil <SeanO@telemate.net>)

1/25/2003
	- Cleanup and improvements to the ExtendedResolver class.

1/23/2003
	- Add the setMaxCache() method to the Cache class.
	- Check for non-absolute names when creating Records.

1/21/2003
	- 1.3.2 released.

1/20/2003
	- Certain responses with CNAMEs weren't being properly cached.
	  (reported by Sean O'Neil <SeanO@telemate.net>)
	- Add a 'compile' target to build.xml, and make the 'all' target
	  both compile and build the jar file.
	  (Jon Scott Stevens <jon@latchkey.com>)

12/22/2002
	- Check for SecurityExceptions in the Options static initializer;
	  this was preventing the use of dnsjava in an unsigned applet.
	  (reported by Peter Westerink <peterw@us.ibm.com>).

12/15/2002
	- Converting some types of records (TXT, for example) to wire format
	  could throw an IndexOutOfBoundsException.
	- TSIG signed UDP queries weren't properly verified by jnamed.
	- Add a method to render a Message with a specified maximum size - 
	  this method will properly truncate large responses and apply
	  TSIG signatures.

12/14/2002
	- Move additional data processing to the Record class from jnamed;
	  make jnamed use it, as well as the caching code.

12/9/2002
	- Add the Lookup class, which is what the dns class should have been,
	  and make the lookup sample program use it.

12/9/2002
	- When caching a message, a response object can be constructed
	  immediately.

12/4/2002
	- 1.3.1 released.

12/3/2002
	- If a subresolver of an ExtendedResolver exited by throwing
	  a RuntimeException, the ExtendedResolver would throw a
	  ClassCastException.   It should rethrow the RuntimeException.

12/3/2002
	- The Name code didn't handle names with non-printable characters.
	  (found by Serge Sozonoff <serge@globalbeach.com>)

11/28/2002
	- Fix a potential deadlock in the WorkerThread class.
	  (found by Serge Sozonoff <serge@globalbeach.com>)

11/26/2002
	- Fix a bug where looking up names without trailing dots
	  would fail if there was no searchlist.

10/31/2002
	- Fix a bug in searchlist processing on Windows.

10/20/2002
	- Record.toWire() and Record.toWireCanonical() do not need to
	  be declared as throwing IOException, since there's no
	  legitimate reason for them to throw one.

10/18/2002
	- Race condition fixes and memory usage improvements to the
	  NameSet class, used by Cache and Zone.

10/16/2002
	- 1.3.0 released.

10/11/2002
	- Add Name.getLabel()

10/10/2002
	- When cleaning the cache, catch ConcurrentModificationExceptions.

10/8/2002
	- Cleanups to Cache.addMessage() and the Credibility code.

10/7/2002
	- Fix problems with search path handling in the dns class.
	- Possible race condition fixes to the Cache code.

10/6/2002
	- Fix minor bugs in Name code (Bob Halley <bob.halley@nominum.com>)
	  
10/1/2002
	- Memory usage and speed improvements to the TypeMap class.

9/25/2002
	- Add the verbosecache option.
	- Significant memory usage improvements to the Name class.

9/23/2002
	- Memory usage improvements to the ARecord class.

9/16/2002
	- Support for NetWare's sys:/etc/resolv.cfg file.
	  (Scott Villinski <scott@villinski.com>)

9/5/2002
	- When looking for an rdataset in a zone or cache, seeing a CNAME
	  above the name is not an error.
	  (reported by Andrew Houghton <aah@volunteermatch.org>)

8/31/2002
	- Changed the code that dynamically loads record types; hopefully
	  this will solve some of the mysterious problems that I think
	  are related to non-English versions of Windows.
	- Clean up the Name code.

8/28/2002
	- Remove support for bitstring labels, since they're now deprecated.

8/16/2002
	- Address.isDottedQuad didn't check to see if the input String
	  contained characters after an IP address.
	  (Marcos Sanz <sanz@denic.de>)

8/11/2002
	- Querying for a nonexistant name with exactly one label didn't return.

8/10/2002
	- Add Ant build script (Blake Ramsdell <blake@brutesquadlabs.com>)

8/6/2002
	- The AAAARecord constructor was broken.
	- The Record class now implements Comparable.

6/22/2002
	- Significant speed improvements in the Record class and its
	  subclasses.

6/20/2002
	- Add Zone.removeRecord() (based on code from Adam Cassar
	  <adam.cassar@netregistry.com.au>)
	- Add Zone.toMasterFile() (based on code from Adam Cassar)
	- Performance enhancements to the Name object.
	- Add the "-t type" option to the lookup program.

6/16/2002
	- Update lots of code to use Collections instead of JDK 1.1
	  Vectors & Hashtables.

5/28/2002
	- fix some limitations of name parsing.
	  (reported by Tasos Kotsikonas <tasos@boldfish.com>)

5/4/2002
	- added the 'sleep' and 'date' commands to the update client.
	  (Olafur Gudmundsson <ogud@ogud.com>)

4/29/2002
	- 1.2.4 released

4/25/2002
	- Add a constructor for building a zone from an array of records.
	  (based on code from Adam Cassar <adam.cassar@netregistry.com.au>)

4/24/2002
	- Reduce the memory usage of the RRset class.
	- Add a new factory method for creating a Record from a
	  String, rather than a pre-tokenized String.
	- Reduce the memory usage of the ARecord class.

4/23/2002
	- Fix potential race conditions in the RRset class.
	  (David Esposito <esposito@newnetco.com>)
	- Fix potential race condition in the WorkerThread class when two
	  threads complete their run methods nearly simultaneously.
	  (David Esposito)
	- Add a new factory method for creating a Record, where the length
	  of the rdata is not explicitly specified, but inferred from
	  data.length.

4/22/2002
	- Improve name decompression by not requiring a decompression context.

3/27/2002
	- Add support for the Delegation Signer (DS) record. (David Blacka)

3/22/2002
	- Record.equals() did not properly canonicalize names.
	- Record.equals() should ignore the TTL.

3/19/2002
	- When a compressed name is parsed, it should be added to the
	  compression table, so that future pointers to that name work.
	  (reported by Blake Ramsdell <blake@brutesquadlabs.com>)

3/14/2002
	- In jnamed, AXFR responses didn't have the message ID or flags
	  set correctly.
	- jnamed failed to respond to messages signed with unknown keys.
	- jnamed did not sign responses to signed AXFR queries.

1/21/2002
	- Handle empty domain statements in /etc/resolv.conf. (reported
	  by Blake Ramsdell <blake@brutesquadlabs.com>)

1/1/2002
	- Minor performance enhancments (suggested by Christopher Brind)

10/14/2001
	- Add support for the DNSSEC RSA-SHA1 algorithm (David Blacka)
	- Add rdataToWireCanonical() (David Blacka)

9/27/2001
	- jnamed can now listen on specific addresses, with the "address"
	  keyword in the config file.

9/23/2001
	- 1.2.3 released

9/14/2001
	- Creating an Enumeration of an empty RRset caused an infinite loop.
	  (David Blacka <davidb@research.netsol.com>)

8/9/2001
	- nsupdate compatibility and a bug fix to the update client.
	  (patch from David Sward <david@berzerked.org>)

8/8/2001
	- The results of ANY queries were not properly cached.

8/4/2001
	- 1.2.2 released

7/22/2001
	- Added the -q (print query) option to dig.
	- Bitstring labels are now canonicalized.
	- jnamed implements the DO (DNSSEC OK) bit.

7/19/2001
	- A string tokenizer bug caused TXT records with one string to be
	  incorrectly parsed.  (David Blacka)
	- Added Name.getLabelString().

7/17/2001
	- Started implementing Name.compareTo().  (loosely based on a
	  patch from David Blacka).

7/16/2001
	- Converting a AAAA record to wire format was broken.
	  (David Blacka)
	- Inet6Address did not properly reject addresses that are too
	  long or too short, and also didn't properly handle addresses
	  with one number after a double colon.
	- Key footprints were computed incorrectly.  Also cache footprints
	  in the KEYRecord to avoid recomputation. (David Blacka)
	- Added the -d flag to dig, which sets the DNSSEC OK bit.

7/13/2001
	- KEY flags were incorrect (David Blacka <davidb@research.netsol.com>)
	- Add routines for parsing a master file from a non-file input
	  source (David Blacka)
	- base64.formatString() didn't work if lineLength wasn't 64.
	  (David Blacka)
	- Add support for the DNSSEC OK extended flag (David Blacka)
	- Allow the caller of a Resolver to add an OPT record to a query.
	  (original patch from David Blacka).

6/30/2001
	- 1.2.1 released

5/23/2001
	- Automatically determining name servers didn't work on Windows 2000.

4/13/2001
	- Converting a Name to a String does proper character escaping.

4/7/2001
	- 1.2.0 released

3/21/2001
	- Only cache relevant data from answers.
	- Cache negative responses more correctly.

3/14/2001
	- Handle TTLs greater than 2^31.

3/10/2001
	- Performance and memory improvements to the Name object.

3/7/2001
	- Performance improvements to TypeMap (used by Zone and Cache).

3/6/2001
	- Lots of standards compliance related fixes.

3/4/2001
	- Improved class handling.
	- A few minor CNAME related fixes.

2/27/2001
	- Referrals weren't returned correctly from jnamed.

1/15/2001
	- Fix some signed/unsigned printing issues for KEY records
	  (Pasi Eronen <pe@iki.fi>)
	- Add routines to generate SIG(0) message signatures
	  (Pasi Eronen <pe@iki.fi>)

1/8/2001
	- Add support for unknown RR types & classes.

12/3/2000
	- The target in an MX record can be compressed.

11/18/2000
	- Add jnamed.conf example to USAGE

8/27/2000
	- 1.1.6 released
	- The high level api wasn't properly initialized.
	  (Christopher Fitch <cfitch@sbti.com>)
	- Added a routine to build a SIG record based on the results of
	  a DSA signature (Pasi Eronen <pe@iki.fi>)
	
8/13/2000
	- Added 'clear' command to update client
	- Removed some deprecated code

8/8/2000
	- Invalid binary labels were not always rejected
	- SRV initialization didn't work (reported by Chuck Santos
	  <csantos@netnumber.com>)
	- jnamed failed if no Cache was specified
	- The Zone object didn't handle zones with no NS records.
	- Added support for the NAPTR record (Chuck Santos
	  <csantos@netnumber.com>)

7/17/2000
	- 1.1.5 released
	- CERT records were printed with a negative keytag half the time.
	  (reported by Jakob Schlyter <jakob@crt.se>).
	- Printing a KEY record prints the key id.
	  (Jakob Schlyter <jakob@crt.se>)

6/25/2000
	- A Cache now contains a thread that periodically removes expired
	  data.

6/4/2000
	- update client syntax enhancement - add/delete/require/prohibit/glue
	  no longer require -r, -s, or -n.

6/3/2000
	- update client supported prohibiting individial records, which is
	  not supported by dynamic update.

5/21/2000
	- Win2000 support

4/15/2000
	- ExtendedResolver supports load balancing of servers.

4/2/2000
	- Minor fix to base64 decoding

3/22/2000
	- name comparison should always be case insensitive
	  (Darrell Kindred <dkindred@tislabs.com>

3/5/2000
	- 1.1.4 released
	- added Cache.setMaxNCache(), which sets the maximum amount of time
	  that a negative answer is cached.

2/10/2000
	- update client: add show command, catch socket exception, don't send
	  empty updates, assert tsig ok/failed/unsigned

2/8/2000
	- 1.1.3 released
	- Added lookup program
	- FindServer finds a search path on Win95/WinNT

2/7/2000
	- minor TKEY record updates
	- FindServer should work on Win95/WinNT
	- Added 'make jar' and a jar file

1/20/2000
	- Added AAAA record

1/13/2000
	- 1.1.2 released
	- dns.setResolver() clears the cache

11/7/1999
	- Added EDNS support to update client

11/2/1999
	- A key starting with ':' is parsed as hex

10/28/1999
	- minor TKEY fixes and TSIG updates

10/5/1999
	- misc. small fixes

10/4/1999
	- Missed TKEY in the type map

9/26/1999
	- Added TKEY record

9/25/1999
	- Diffie-Hellman key updates

9/23/1999
	- dns.server and dns.search are now comma-delimited strings

9/20/1999
	- 1.1 released (finally)
	- Change OPT to type 41 and fixed related stuff
	- Change license to LGPL

9/16/1999
	- Cache & DNSSEC bug fixes

9/9/1999
	- A6 record support (and IPv6 addresses)

9/6/1999
	- jnamed has limited support for SIG records

9/4/1999
	- res.sendAXFR() is now obsolete, just use res.send()
	- jnamed (and Zone) support incoming AXFR
	- Zone handles wildcards that replace multiple labels

9/2/1999
	- Bitstrings are now compatible with current BIND 9
	- jnamed (and Zone) support outgoing AXFR
	- jnamed uses jnamed.conf by default, can specify port in config file,
	  returns NOTIMPL on meta-queries other than AXFR and ANY.
	- DNSSEC can now verify records that came from wildcard expansion
	- SimpleResolver handles AXFR REFUSED
	- Lots of EDNS updates

9/1/1999
	- More bitstring fixes.
	- Added RP record (from Tom Scola <tscola@research.att.com>)

8/29/1999
	- More bitstring label stuff.  I think they work now.
	_ DataByteInputStream cleanup.  Should handle errors better now.

8/26/1999
	- More verbose options
	- TSIG badtime bug & better reporting
	- Large TTL bug
	- MyStringTokenizer.setNoEscapeCharacter()

8/25/1999
	- Imported DNSSEC code
	- New options: tsigfudge, verbosehmac, verbosemsg
	- Added utils.hexdump to print a formatted dump of bytes

8/24/1999
	- More bitstring label support

8/23/1999
	- All data now passes through the Cache.  This should help with
	  DNSSEC verification
	- Added basic DNSSEC verification
	- Fixes for handling data with TTL 0
	- Started adding bitstring labels
	- Added support for DNAME records (no processing yet)

8/8/1999
	- Started adding global options (Options class)

8/7/1999
	- Type and Class ANY should work correctly now
	- jnamed and Zone handle wildcard records
	- Cache returns wildcard set if name is negatively cached
	- TTL can be converted into BIND format

8/6/1999
	- Updates to KEYRecord - getFootprint() and renamed constants

8/2/1999
	- 1.0.2 released
	- WorkerThread obscure race conditions fixed (patches provided by
	  Tom May <tom@go2net.com>)

8/1/1999
	- Added getResolver/getCache to dns class
	- RRset now has deleteRR and is better synchronized
	- Cache now has flushName/flushSet
	- Resolver.sendAsync returns an Object instead of an int
	- Socket cleanup (patches provided by Tom May <tom@go2net.com>)
	- WorkerThread's idle lifetime and max threads are now configurable
	- HMAC-MD5 logic bug

7/5/1999
	- 1.01 released
	- fixed a hang with ExtendedResolver and Exceptions

6/30/1999
	- dns search path should always include a . at the end.  The only
	  time this bug would show up is when querying for an unqualified
	  top level name.

6/29/1999
	- update now ignores '>' at the beginning of a line, to allow
	  easier cut and paste from other update sessions.

6/24/1999
	- Use an int instead of a short for the message section count.
	  It would be nice if java had unsigned types, but since messages
	  are also constructed from zone transfers, a larger value is useful.

6/23/1999
	- AXFR TSIG bug fix

6/18/1999
	- 1.0 released.  Yay!
	- documentation updates
	- my birthday

6/15/1999
	- Restructured update's help
	- Added 'assert serial' to update, fixes to query keyword
	- Added Record.fromWire from a byte array
	- Added LOC support

6/14/1999
	- Updates to multiline parser

6/11/1999
	- Added Message.newUpdate to simplify sending updates

6/10/1999
	- Zone file parser now handles $INCLUDE
	- update now has a keyword 'zone', which sets the zone to be updated,
	  if it's different than the origin
	- added constants for DNAME, A6, KX
	- added KX support, abstracted MX code to support KX also.

6/9/1999
	- update should handle timeouts
	- AXFR parser should allow 1 record in the question section

6/7/1999
	- Zone file parser now handles $TTL, and complains about invalid
	  directives.
	- fixed a few parsing problems in update
	- fixed null key parsing and key flags handling

6/3/1999
	- added author javadoc tags
	- added javadoc comments to Master.  Again, not sure how I missed
	  this before.

5/25/1999
	- 0.9.5 released
	- fixed another null pointer in the cache

5/23/1999
	- added javadoc comments to utils/MyStringTokenizer.  Not sure how
	  I missed this class before.
	- minor cleanups to string parsing in update

5/21/1999
	- fixed comment processing in update
	- fixed case bug in Section handling

5/20/1999
	- 0.9.4 released
	- fixed the same round-robin bug, hopefully correctly this time

5/17/1999
	- 0.9.3 released

5/16/1999
	- fixed a round-robin bug

5/14/1999
	- 0.9.2 released
	- Resolver routines now return Exceptions instead of null.

5/13/1999
	- split WorkerThread into WorkerThread and ResolveThread

4/25/1999	
	- moved files to org.xbill.DNS
	- Cache round-robins RRsets before handing them out
	- changed the way ExtendedResolver decides when to send queries
	- various reflection changes

4/21/1999	
	- minor WorkerThread fixes

4/19/1999	
	- 0.9.1 released
	- WorkerThreads should die after 15 minutes of idle time
	- Address.getByName/getAllByName handle dotted quad IP addresses

4/18/1999	
	- 0.9 released
	- Finished javadoc-ing classes in DNS.*
	- Server should work now
	- Zone/Cache response updates
	- Zone/Cache accesses should be more thread-safe

4/17/1999
	- The Cache supports ANY queries
	- More javadoc-ed classes in DNS.*
	- implemented toWireCanonical for record types that need it
	- Message.toString should print better output for update messages

4/16/1999
	- jnamed wasn't looking up non-ANY queries correctly in a zone
	- SimpleResolver should use TCP if query length is longer than UDP
		packet size
	- More javadoc-ed classes in DNS.*
	- MyStringTokenizer moved to DNS.utils

4/15/1999
	- More javadoc-ed classes in DNS.*
	- Moved functions from DNS.IO to DNS.utils.base64 and DNS.Master
	- Implemented search path for dns.getRecords functions
	- 0.8.3 released
	- Restrict number of WorkerThreads to 10
	- ExtendedResolver timer code fixes
	- ExtendedResolver race condition fix

4/14/1999
	- ExtendedResolver reentrancy fixes
	- Names are marked as qualified/unqualified
	- FindServer looks for search path from -Ddns.search1, etc.
		and in /etc/resolv.conf

4/13/1999
	- 0.8.2 released
	- More javadoc-ed classes in DNS.*
	- The message ID stuff from 4/10 broke TSIG, so it's gone
	- Changes to ExtendedResolver's handling of child Resolvers
	- Too many threads were being created
	- Threads should now have meaningful names

4/12/1999
	- NameSet shouldn't be using wildcards, since it's not correct for
		a cache (a name could match a wildcard and return wildcard
		data before the cache learned about data for the name)
	- javadoc-ed DNS.utils.* and some of DNS.*
	- ExtendedResolver allows specifying Resolvers to use
	- SimpleResolver and ExtendedResolver share a thread pool
	- ExtendedResolver and FindServer bugfixes
	- Header bug that actually caused the 0.8.1 release fixed
	- bugfix release 0.8.1 released
	- Messages weren't being cloned properly
	- Resolver didn't handle a query to nowhere correctly

4/11/1999
	- 0.8 released
	- Resolver is now an interface, implemented by SimpleResolver
		and ExtendedResolver.
	- added ExtendedResolver, which sends multiple queries to multiple
		resolvers.
	- jnamed rejects non-queries

4/10/1999
	- added Message.newQuery() to make building queries easier
	- Record.fromWire verifies that the record length is correct
	- Resolver.sendAsync() now uses worker threads rather than
		starting a new thread each time.
	- Multiple servers can be found by setting the dns.server<n>
		properties (or from /etc/resolv.conf).
	- Message/Header doesn't generate the message id until the message
		is sent or the id is queried for

4/9/1999
	- added setTimeout to Resolver

4/8/1999
	- fixed obscure md5 bug
	- made Resolver(null) and Resolver() equivalent

4/7/1999
	- Added simple asynchronous interface to resolver

4/6/1999
	- CERT and SIG bug fixes

4/5/1999
	- data lookups should use class in addition to type
	- CERT record bug fix

4/4/1999
	- 0.7 released
	- DNS.dns uses Cache
	- Added getAny* to DNS.dns
	- Cache can return information indicating partial success on lookup

4/3/1999
	- Cache does negative caching
	- Cache follows CNAMEs when looking for cached data

4/2/1999
	- dig now understands -x
	- added DNS.Address, a clone of InetAddress
	- Cache can now follow CNAME chains
	- Cache now expires records based on TTL and doesn't cache records
		with TTL = 0.

4/1/1999
	- Made Cache and Zone extend NameSet
	- Created Master class to parse master files

3/31/1999
	- Added first cut at Cache
	- Changes to RRset to make it more useful

3/30/1999
	- 0.6 released
	- bug fixes to DataInputStream, jnamed
	- jnamed now takes config file
	- Added basic EDNS0 and TSIG support to jnamed
	- Added basic EDNS0 support and IgnoreTruncation flag to Resolver
	- jnamed can now return FORMERR

3/29/1999
	- 0.5 released
	- update client: added "echo" and "log" keywords, "file" can now
		specify "-" for standard input (at the end of a config file,
		for example).
	- added support for BIND TTL format
	- switched from CountedDataOutputStream to DataByteOutputStream,
		which extends ByteArrayOutputStream.  Same for Input.
		Should help performance and allow more flexibility.
	- minor server fix to authority section

3/28/1999
	- 0.4 released
	- fixed compression bug where all pointers into rdata were 0
	- server sends authority records (NS or SOA)
	- server now loads glue data separately from zone data, adds
		authority and additional data, and deals with truncation.
	- fixed a few Zone bugs
	- added signatures to RRset

3/27/1999
	- 0.3 released
	- _res was set wrong, so the high level functions wouldn't work.
	- Minor additions to CountedData(Input|Output)Stream
	- Lots of DNSSEC stuff

3/26/1999
	- moved constants out of dns class into other classes

3/25/1999
	- 0.2 released
	- conversion from base64 sometimes added extra zeroes.
	- original record length was computed wrong, so tsigs didn't verify.
	- master file parser didn't deal with ; delimited comments
	- server now stores data in RRsets instead of individual RRs.
	- various server bug fixes.  Still doesn't work too well.

3/23/1999:
	- 0.1 released