Ted Lemon [Thu, 6 Mar 1997 07:06:08 +0000 (07:06 +0000)]
Traversal of interface list to weed out bad interfaces was broken when I added the dummy interface list - fix is to save the next pointer before weeding out interfaces.
Ted Lemon [Thu, 6 Mar 1997 07:02:00 +0000 (07:02 +0000)]
Move a ton of bits from the lease structure into the lease_state structure. The lease structure is permanent, whereas the state structure is ephemeral, which means that leases now consume less memory (memory consumption is now about the same as in Beta 5 Patchlevel 14). Allocate and free the lease_state structure. If ack_lease is called on a lease that already has a state structure, we're already acking something, so we don't try to ack it again.
Ted Lemon [Thu, 6 Mar 1997 06:53:49 +0000 (06:53 +0000)]
Check address ranges to see if they're on the right net (previously we just silently made them be on the right net, with interesting results). In supersede_leases, don't copy offered_expiry anymore since it's now in the state structure
Ted Lemon [Thu, 6 Mar 1997 06:52:30 +0000 (06:52 +0000)]
Make dispatch() run through a list of protocol structures to select against, rather than running through the interface list and then special casing other stuff. This simplifies things substantially. add_protocol() function allows new protocols to be selected against. Timeouts now pass a void * instead of a struct interface_info *. Move do_packet into options.c so that options.c isn't pulled into dhcrelay.
Ted Lemon [Thu, 6 Mar 1997 06:48:09 +0000 (06:48 +0000)]
change prototypes to functions called by timeouts; initialize bootp_handler to do_packet(); lose relay() function call (not needed now that we have bootp_handler hook.
Ted Lemon [Wed, 5 Mar 1997 06:30:08 +0000 (06:30 +0000)]
Always send packets of at least BOOTP_MIN_LEN; abbreviate option setup code; don't send requested address unless we're rebooting or requesting; send options as requested in config file; add support for DHCPNAK and INIT-REBOOT state
Ted Lemon [Sat, 22 Feb 1997 08:48:15 +0000 (08:48 +0000)]
Use interface address instead of common server identifier; allow specific clients to be excluded from booting; don't release a lease based on a DHCPREQUEST to a different server - this isn't allowed by the protocol
Ted Lemon [Sat, 22 Feb 1997 08:44:15 +0000 (08:44 +0000)]
Add media selection for interface cards that support more than one kind of network media; fix exponential backoff code; add parameter to control the use of commas in pretty printing - no commas in shell script arrays; add dummy relay() function
Ted Lemon [Sat, 22 Feb 1997 08:38:32 +0000 (08:38 +0000)]
Add support for passing arbitrary options to server and for providing default options when the server doesn't provide them; remove client_identifier and hostname - these are just options.
Ted Lemon [Sat, 22 Feb 1997 08:34:16 +0000 (08:34 +0000)]
dispatch() now takes an argument indicating whether to decode the packet or just call relay(); save the first ip address we encounter for each interface as the primary address.
Ted Lemon [Wed, 19 Feb 1997 10:57:24 +0000 (10:57 +0000)]
Run as daemon after first binding; don't record leases defined in config file; remember leases even if the interface to which they're attached isn't presently configured; preferentially select a lease offer if it's for the address we asked for; if we don't successfully bind, iterate through list of remembered leases and see if one works; arp for lease before accepting it and send dhcpdecline if it's bogus; various bug fixes