File: TODO

package info (click to toggle)
libnet-dns-perl 0.12-4
  • links: PTS
  • area: main
  • in suites: potato
  • size: 444 kB
  • ctags: 269
  • sloc: perl: 4,047; makefile: 59; sh: 17
file content (180 lines) | stat: -rw-r--r-- 5,390 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
To Do list for Net::DNS
=======================

* Work on Resolver.pm:

  - Add a method to set the query source port.

  - Add an optional argument to Net::DNS::Resolver->new to read a
    specific configuration file instead of using the default files.

  - Accept options in resolver config files.

  - Show more info about the query when $res->debug(1).

  - Work on a way to use the same socket for background queries.

  - Write $res->axfr_start, $res->axfr_next.

  - Document $res->errorstring messages.

  - Work on efficiency of IO::Socket handling.

  - Implement AAONLY queries.  Here's a code fragment to set the
    nameserver list to the hosts returned in the authority section:

	  $res->nameservers(map  { $_->nsdname }
	                    grep { $_->type eq "NS" }
		            $ans->authority);

* Work on the manual pages:

  - Review the examples in the Net::DNS manual page.

  - Make "->" non-breaking.

  - Reorganize to put the most frequently-used methods first.  Suggested
    by John Line.

  - Add manual pages for individual RR types to the homepage.

* Consider using function prototypes.

* Get rid of .* in AAAA.pm; write more tests for AAAA.pm.

* Allow Net::DNS::RR::LOC->latlon to set the lat/lon.

* Work on the dynamic update code.  Some things remaining to do:

  - Append the default zone in update packets if the name doesn't
    contain a dot.

  - Add the "new_from_string" method to the following RR types:

      EID
      NIMLOC
      NSAP
      NULL

  - Do sanity checking on user-created RR objects.  Update the BUGS
    section in RR.pm when this is complete.

  - Allow yxrrset & friends to take an RR object as an argument.

  - Do more sanity checking on yxrrset & friends.

  - Add an "update" method to the resolver class to send the update
    packet to the zone's authoritative nameservers (see also RFC
    2136, Section 4).

  - Do case-insensitive comparisons in Net::DNS::Packet->dn_comp.

* Consider getting rid of the "; no data" string from $rr->rdatastr.  Add
  it possibly in $rr->string.

* Improve the error handling and reporting.  Some things to do:

  - Get rid of Carp::confess as many places as possible.

  - Make sure empty RDATA sections don't cause the program to print
    the obnoxious "no such method" warning.

  - Check for invalid RR types or classes.

  - Handle "host is down" error in Resolver.pm.

  - Set a more descriptive error if a zone transfer fails, especially
    if the nameserver isn't authoritative (current code returns NOERROR
    if the nameserver answered but wasn't authoritative).

  - Consider documenting the use of "eval" to avoid a fatal error
    in certain places.  Idea by Dirk Herr-Hoyman.

* Restructure some of the code.  Some things to look at:

  - Net::DNS::Resolver->send (needs to be broken into smaller pieces).

  - Net::DNS::Packet->dn_expand (get rid of the recursive call).

  - Passing of references between Net::DNS::Packet and Net::DNS::RR.

* Add more RR types.  Currently unimplemented are:

    MD		RFC 1035 (obsolete)
    MF		RFC 1035 (obsolete)
    WKS		RFC 1035
    NSAP_PTR	RFC 1348 (deprecated)
    GPOS	RFC 1712 (withdrawn)
    KEY		RFC 2065
    NXT		RFC 2065
    SIG		RFC 2065
    ATMA	???
    TSIG	draft-ietf-dnsind-tsig-xx.txt

* Fix the TXT RR to handle more than 1 string in the RDATA section
  (RFC 1035, Section 3.3.14).

* Check the EID, NIMLOC, and NULL RR handling.

* Add test cases for NULL, EID, and NIMLOC to private zone data.
  NULL isn't allowed in master files per RFC 1035, Section 3.3.10;
  BIND 8.1-REL doesn't appear to implement EID or NIMLOC (perhaps
  via dynamic update?).

* Write some front-end methods to do CNAME translations automagically.

* Work on demo scripts:

  - Add a copyright notice to the demo scripts.

  - Work on demo/axfr:

    * Add a print statement to tell whether the zone info comes from
      a file or a zone transfer.

  - Work on demo/srv (not included with the distribution).  Remaining
    to do:

    * Documentation.  Don't forget to add a reference to it in the other
      demo scripts.

    * Consider adding "sub srv" to DNS.pm.

    * Add to the Changes file.

  - Work on nsupdate.pl (not included with the distribution) and add it
    to the demo directory.  Remaining to do:

    * Write documentation.

    * Make it more robust.

  - Work on dns.cgi (not included with the distribution) and add it to
    the demo directory.  Some things remaining to do:

    * Check for HTTP_USER_AGENT in zone transfers.

    * Add a way to change resolver settings.  Edit do_axfr and remove
      the query for the zone's nameservers when this is finished.

    * Add support for dynamic updates.

  - Consider writing a simple nameserver with Net::DNS.

* Do more study of resolver behavior as recommended in RFCs 1035, 1123,
  and 2136.

* Add some text- and html-specific sections to the manual pages.

* Check code for conformance to the guidelines listed in The Perl 5 Module
  List.  Check style & efficiency according to the perlstyle manpage and
  the Camel.

* Consider providing an .xs file for those who wish to link against
  libresolv or libbind instead of using the entirely-Perl resolver.

* Consider rewriting the packet-parsing code in C for increased speed,
  or possibly going back to using Dave Shield's resparse library.

---
$Id: TODO,v 1.12 1997/10/02 05:35:14 mfuhr Exp $