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