xref: /dragonfly/libexec/bootpd/ToDo (revision 86d7f5d305c6adaa56ff4582ece9859d73106103)
1ToDo:                                                                 -*- text -*-
2
3----------------------------------------------------------------------
4Memory allocation locality:
5
6Currently mallocs memory in a very haphazard manner.  As such, most of
7the program ends up core-resident all the time just to follow all the
8stupid pointers around. . . .
9
10----------------------------------------------------------------------
11Input parser:
12
13The reader implemented in readfile.c could use improvement.  Some sort
14of "data-driven" parser should be used so the big switch statements
15would have only one case for each data type instead of one case for
16every recognized option symbol.  Then adding a new tag would involve
17only adding a new element to the data table describing known symbols.
18Hopefully, this would shrink the code a bit too. -gwr
19
20----------------------------------------------------------------------
21SLIP Initialization via BOOTP:
22
23In the function handle_request(), both in bootpd and bootpgw,
24we might want to add code like the following just before testing
25the 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----------------------------------------------------------------------
52DHCP Support:
53
54There is a set of patches from Jeanette Pauline Middelink
55<middelin@calvin.polyware.iaf.nl> to add DHCP support.
56
57Those patches will be integrated into the BOOTP release stream
58very soon, but if you can't wait, you can get them from:
59nimbus.anu.edu.au:/pub/tridge/samba/contributed/DHCP.patch
60
61----------------------------------------------------------------------
62