11558SrgrimesToDo:							-*- text -*-
21558Srgrimes
31558Srgrimes----------------------------------------------------------------------
41558SrgrimesMemory allocation locality:
51558Srgrimes
61558SrgrimesCurrently mallocs memory in a very haphazard manner.  As such, most of
71558Srgrimesthe program ends up core-resident all the time just to follow all the
81558Srgrimesstupid pointers around. . . .
91558Srgrimes
101558Srgrimes----------------------------------------------------------------------
111558SrgrimesInput parser:
121558Srgrimes
131558SrgrimesThe reader implemented in readfile.c could use improvement.  Some sort
141558Srgrimesof "data-driven" parser should be used so the big switch statements
151558Srgrimeswould have only one case for each data type instead of one case for
161558Srgrimesevery recognized option symbol.  Then adding a new tag would involve
171558Srgrimesonly adding a new element to the data table describing known symbols.
181558SrgrimesHopefully, this would shrink the code a bit too. -gwr
191558Srgrimes
201558Srgrimes----------------------------------------------------------------------
211558SrgrimesSLIP Initialization via BOOTP:
221558Srgrimes
231558SrgrimesIn the function handle_request(), both in bootpd and bootpgw,
241558Srgrimeswe might want to add code like the following just before testing
251558Srgrimesthe client IP address field for zero. (bp->bp_ciaddr == 0)
261558Srgrimes(David suggests we leave this out for now. -gwr)
271558Srgrimes
281558Srgrimes#if 1	/* XXX - Experimental */
291558Srgrimes	/*
3073986Sobrien	 * SLIP initialization support.
311558Srgrimes	 *
321558Srgrimes	 * If this packet came from a SLIP driver that does
331558Srgrimes	 * automatic IP address initialization, then the socket
341558Srgrimes	 * will have the IP address and the packet will
3573986Sobrien	 * have zeros for both the IP and HW addresses.
361558Srgrimes	 *
371558Srgrimes	 * Thanks to David P. Maynard <dpm@depend.com>
381558Srgrimes	 * for explaining how this works. -gwr
3921021Sobrien	 */
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