From abf58d6ba5df9bbe04c4c7008cbbc8c7dc626392 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Fri, 8 Oct 2004 08:49:26 +0000 Subject: Wade Berrier writes: Hello, Here's a patch for a first attempt at static leases for udhcpd. Included in the tarball are 2 files (static_leases.c, static_leases.h) and a patch against the latest cvs. In the config file you can configure static leases with the following format: static_lease 00:60:08:11:CE:4E 192.168.0.54 static_lease 00:60:08:11:CE:3E 192.168.0.44 Comments/suggestions/improvements are welcome. Wade --- networking/udhcp/leases.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'networking/udhcp/leases.c') diff --git a/networking/udhcp/leases.c b/networking/udhcp/leases.c index d478880..4da21a2 100644 --- a/networking/udhcp/leases.c +++ b/networking/udhcp/leases.c @@ -16,6 +16,8 @@ #include "arpping.h" #include "common.h" +#include "static_leases.h" + uint8_t blank_chaddr[] = {[0 ... 15] = 0}; @@ -134,6 +136,10 @@ uint32_t find_address(int check_expired) /* ie, 192.168.55.255 */ if ((addr & 0xFF) == 0xFF) continue; + /* Only do if it isn't an assigned as a static lease */ + if(!reservedIp(server_config.static_leases, htonl(addr))) + { + /* lease is not taken */ ret = htonl(addr); if ((!(lease = find_lease_by_yiaddr(ret)) || @@ -147,5 +153,6 @@ uint32_t find_address(int check_expired) break; } } + } return 0; } -- cgit v1.1