Merge from vendor branch OPENSSH:
[dragonfly.git] / libexec / bootpd / ToDo
1 ToDo:                                                   -*- text -*-
2
3 ----------------------------------------------------------------------
4 Memory allocation locality:
5
6 Currently mallocs memory in a very haphazard manner.  As such, most of
7 the program ends up core-resident all the time just to follow all the
8 stupid pointers around. . . .
9
10 ----------------------------------------------------------------------
11 Input parser:
12
13 The reader implemented in readfile.c could use improvement.  Some sort
14 of "data-driven" parser should be used so the big switch statements
15 would have only one case for each data type instead of one case for
16 every recognized option symbol.  Then adding a new tag would involve
17 only adding a new element to the data table describing known symbols.
18 Hopefully, this would shrink the code a bit too. -gwr
19
20 ----------------------------------------------------------------------
21 SLIP Initialization via BOOTP:
22
23 In the function handle_request(), both in bootpd and bootpgw,
24 we might want to add code like the following just before testing
25 the client IP address field for zero. (bp->bp_ciaddr == 0)
26 (David suggests we leave this out for now. -gwr)
27
28 #if 1   /* XXX - Experimental */
29         /*
30          * SLIP initialization support.
31          *
32          * If this packet came from a SLIP driver that does
33          * automatic IP address initialization, then the socket
34          * will have the IP address and the packet will
35          * have zeros for both the IP and HW addresses.
36          *
37          * Thanks to David P. Maynard <dpm@depend.com>
38          * for explaining how this works. -gwr
39          */
40         if ((bp->bp_ciaddr.s_addr == 0) &&
41                 (bp->bp_htype == 0))
42         {
43                 /* Pretend the client knows its address.  It will soon. */
44                 bp->bp_ciaddr = recv_addr.sin_addr;
45                 if (debug)
46                         report(LOG_INFO, "fixed blank request from IP addr %s",
47                                    inet_ntoa(recv_addr.sin_addr));
48         }
49 #endif
50
51 ----------------------------------------------------------------------
52 DHCP Support:
53
54 There is a set of patches from Jeanette Pauline Middelink
55 <middelin@calvin.polyware.iaf.nl> to add DHCP support.
56
57 Those patches will be integrated into the BOOTP release stream
58 very soon, but if you can't wait, you can get them from:
59 nimbus.anu.edu.au:/pub/tridge/samba/contributed/DHCP.patch
60
61 ----------------------------------------------------------------------