ToDo: -*- text -*- ---------------------------------------------------------------------- Memory allocation locality: Currently mallocs memory in a very haphazard manner. As such, most of the program ends up core-resident all the time just to follow all the stupid pointers around. . . . ---------------------------------------------------------------------- Input parser: The reader implemented in readfile.c could use improvement. Some sort of "data-driven" parser should be used so the big switch statements would have only one case for each data type instead of one case for every recognized option symbol. Then adding a new tag would involve only adding a new element to the data table describing known symbols. Hopefully, this would shrink the code a bit too. -gwr ---------------------------------------------------------------------- SLIP Initialization via BOOTP: In the function handle_request(), both in bootpd and bootpgw, we might want to add code like the following just before testing the client IP address field for zero. (bp->bp_ciaddr == 0) (David suggests we leave this out for now. -gwr) #if 1 /* XXX - Experimental */ /* * SLIP initialization support. * * If this packet came from a SLIP driver that does * automatic IP address initialization, then the socket * will have the IP address and the packet will * have zeros for both the IP and HW addresses. * * Thanks to David P. Maynard * for explaining how this works. -gwr */ if ((bp->bp_ciaddr.s_addr == 0) && (bp->bp_htype == 0)) { /* Pretend the client knows its address. It will soon. */ bp->bp_ciaddr = recv_addr.sin_addr; if (debug) report(LOG_INFO, "fixed blank request from IP addr %s", inet_ntoa(recv_addr.sin_addr)); } #endif ---------------------------------------------------------------------- DHCP Support: There is a set of patches from Jeanette Pauline Middelink to add DHCP support. Those patches will be integrated into the BOOTP release stream very soon, but if you can't wait, you can get them from: nimbus.anu.edu.au:/pub/tridge/samba/contributed/DHCP.patch ----------------------------------------------------------------------