home *** CD-ROM | disk | FTP | other *** search
- 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 <dpm@depend.com>
- * 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
-
- ----------------------------------------------------------------------
-