File: TODO

package info (click to toggle)
ruli 0.36-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,144 kB
  • sloc: ansic: 12,599; sh: 416; makefile: 350; perl: 196; java: 112; php: 55; pascal: 33; lisp: 31
file content (448 lines) | stat: -rw-r--r-- 10,569 bytes parent folder | download | duplicates (3)
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
#
# $Id: TODO,v 1.138 2005/12/07 21:16:18 evertonm Exp $
#

  Legend:
    - = todo
    / = in progress
    + = done

......................................................................

Wishlist:

- Would handling of exceptional events on sockets add any benefit?

- Actually fix the FIXMEs in the code.

- Non-standard HTTP with SRV/_http._tcp.domain, A/domain?

- Use garbage collection for memory management? 
  As build-time option?
  Keep the application in charge of it?
  Anyone?

- Launch auxiliary queries to follow CNAME chains? I believe we
  don't need to use extra queries for CNAME chains, because the
  recursive name server is supposed to fetch the whole chain
  for us. Not sure, though.

- Use round-trip times to better distribute load among recursive
  name servers?

- Add an reverse-lookup layer to the raw resolver in order to
  fetch IN PTR records across CNAME chains?

- Add a CNAME-aware layer to the raw resolver in order to
  fetch arbitrary record types across CNAME chains?

- ruli_txt: Recognize rfc1035-quoting (section 5.1)
            slash"\.".org
            slash"\046".org
            This will require a variable max-length for txt dst 
            decoding buffer.
            Relatively hard at first.

- Use EDNS0 to support larger UDP segments.

- Special behavior (smtp, http, ...) under ruli_getaddrinfo().

- check packaging against Debian Library Packaging Guide:
  http://www.netfort.gr.jp/~dancer/column/libpkg-guide/


				 -x-

Changes:

......................................................................

0.37

- New: Autoconf/automake/libtool support.

- Rgr: Regression test cases for special SRV behavior.
       (SMTP, HTTP, ...)

- Rgr: Basic regression test cases for synchronous API.

- New: Add optional logging for RULI major events and/or errors.

- New: Permit the user to limit the number of concurrent queries
       thus preventing accidental overload of the library.

- New: ruli_sync: Periodically (or on usage threshold)
       reload config: /etc/resolv.conf.

- New: ruli_res: Periodically (or on usage threshold)
       refresh config: nameserver list & search list.


......................................................................

0.36

+ Fix: Solaris 9 port.


......................................................................

0.35

+ New: Sample code for runtime detection (dlopen()) of libruli.so.
       (see sample/run_getaddrinfo.c for example of runtime code)


......................................................................

0.34

+ New: Mikael Magnusson patch to allow CNAME in SRV targets.

+ Fix: Added 'rfc3484' resolver option to sample programs.

+ Fix: Safer sockaddr structure for recvfrom().


......................................................................

0.33

+ Fix: ruli_getaddrinfo: Mikael Magnusson patch to respect address
       family specified in hints.

+ Fix: Support for RFC3484 - destination address selection.

+ New: SONAME increased to reflect ABI change.


......................................................................

0.32

+ Fix: Sort MX records by priority.

+ Fix: Sort addresses by family, delivering IPv6 first, if any.

+ Fix: ruli_http: Support for specific srv-based queries for http.

+ New: Binding for Lua language.


......................................................................

0.31

+ Cln: Minor clean-ups.

+ New: Perl module 0.02: namespace "Net::RULI".

+ New: Java native interface.


......................................................................

0.30

+ Fix: Compilation fix for gcc 3.4.

+ Fix: Better error code reporting for Guile extension.

+ Fix: Solaris port.


......................................................................

0.29

+ New: Guile extension.


......................................................................

0.28

+ Cln: Use ruli_host for all address lookups.
       + walk: + Use ruli_host for address lookups.
               + Major clean-up.
       + fall: + Use ruli_host for address lookups.
               + Major clean-up.

+ Fix: Increase SONAME due to ABI changes (changed struct's members).
       API remains though.


......................................................................

0.27

+ Fix: Removed INSTALL_DIR from compiler/linker search path.

+ New: Resolver options.
       + uri_port
       + nowalk
       + nofall

+ New: ruli_host: CNAME-aware, family-agnostic, address lookup layer.


......................................................................

0.26

+ Fix: ruli_smtp: Perform extra "walk" queries for MX exchange which
       has no corresponding address record in the additional section?
       Shouldn't MX additional processing handle this for us in the
       recursive resolver? It seems MX TTL > MX target TTL partially
       defeats "MX additional processing", unfortunately. Thus we
       actually need to to work-around this issue by issuing queries
       for address records.

+ New: Symbol versioning in shared library.

+ Fix: Solaris port.

+ Fix: ruli_addr: Better IPv6 print helper.

+ Cln: Prefix internal non-static functions with '_'.


......................................................................

0.25

+ Fix: ruli_srv: Perform 2 separate queries for addresses (IN_AAAA,
       IN_A), instead of a single IN_ANY query.
       + walk_query
       + fall_query

+ Fix: Debian compiler warning for m68k, powerpc, hppa.


......................................................................

0.24

+ New: IPv6 support: AAAA resource records.

+ Fix: Better portability for ruli_getaddrinfo().


......................................................................

0.23

+ Fix: Add IPv6 support for 'tools'.

+ Fix: Perl binding updated to new address-family-aware API.

+ Fix: PHP binding updated to new address-family-aware API.

+ Fix: Incorrect pointer arithmetic in ruli_getaddrinfo().


......................................................................

0.22

+ New: IPv6 support: PF_INET6 protocol family as transport.

+ New: Change fsm to use IPv6 UDP sockets. TCP is for free.

+ New: load IPv6 nameserver addresses.

+ New: API changed to support IPv6.

+ New: ruli_inet6_ntoa(): detect valid IPv6 address.

+ New: Added ruliwrap wrapper (from http://weinholt.se/hacks/)
       as ruli_getaddrinfo().


......................................................................

0.21

+ Fix: 'class' replaced by 'qclass' to avoid clash with c++ keyword.

+ Cln: Better support for Debian packaging.

+ Cln: Better portability.


......................................................................

0.20

+ New: Example programs for the Perl module.

+ New: Minimal man pages for sample programs.

+ New: Debian binary package 'libruli-bin' for sample programs.


......................................................................

0.19

+ New: Binding for Perl.


......................................................................

0.18

+ Cln: More friendly to Debian packaging.

+ New: Added bogus manpage for Debian.

+ New: Added 'debian' directory for package debianization.

+ Fix: Retrieve MX Exchange (in place of MX Owner) as SRV target.

+ New: Binding for PHP4.


......................................................................

0.17

+ Cln: Compatibility with newer gcc.

+ Fix: Better handling of remotely closed connection.

+ New: Better internal array structure.


......................................................................

0.16

+ Fix: Default config unloader was being improperly called.

+ New: Return priority/weight values in high-level interfaces.

+ New: Non-standard SMTP with SRV/_smtp._tcp.domain, MX/domain, 
       A/domain.


......................................................................

0.15

+ Fix: Server round-robin scanning is reset for every suffix of the
       search list.

+ Cln: More ISAAC name space clean-ups.

+ New: ruli_search: Simpler, higher-level API for SRV queries.
       Previous RULI's standard SRV API (ruli_srv) seemed too
       complex for simple queries with trivial behavior.

+ Fix: Sample tools have been using incorrect buffer sizes for
       domain names in textual form. This limited the maximum
       domain name length to 252 characters instead of 253.

+ New: Sample programs under 'sample' directory show how to
       write SRV-aware applications.

+ Cln: ruli_sync based on ruli_search.

+ New: ruli_search: Higher-level API for easy resolver creation.

+ Fix: Regression errors.


......................................................................

0.14

+ ruli_txt: Clean-up label handling API: ruli_txt.

+ ruli_res: Implement search list.

+ ruli_sync: Use a search list as defined by
  'search'/'domain' clauses of /etc/resolv.conf.

+ Code clean-up.


......................................................................

0.13

+ ruli_rand: Use random generator with explicit state: ISAAC.

+ Clean up of ISAAC name space.

+ Follow CNAME chains while falling back to IN A queries.
  Would require loop detection or limit the max chain depth.

+ Basic regression test cases for SRV API.

+ Clean up of obsolete domain comparisson code.

+ Fixed possible memory leaking in fallback answer processing.

+ Fixed possible memory leaking in "walk" answer processing.


......................................................................

0.12

+ Code clean-up.

+ Comprehensive, automated regression test cases for underlying
  resolver.

+ Stricter (paranoid) checking of servers answers for flags, opcode.


......................................................................

0.11

+ ruli_srv: Better RCODE kind semantics.

+ Report timeout (alarm) condition on sample tools.

+ Checking of target-walk and fallback answer IN A records.

+ Code clean-up.

+ Stricter compiler warnings.

+ Minor bugfix: ruli_srv_t.qdomain_len was not being initialized.

+ ruli_srv: Check owner match.

+ ruli_txt: Detect name compression loop.


......................................................................

0.10

+ Return error when fallback IN A query can't find any
  address.

+ Portability fixes for Solaris 7.

+ Synchronization with HTML documentation.

+ syncsolver: Minor fix for stdin parsing.


......................................................................

0.9

+ Fixed assert() triggered by late UDP answers reaching
  us when we have switched to another state due to timeout.

+ Better checks of function return results for ruli_list_new(),
  ruli_list_parse(), ruli_list_push().
      
				 -x-