udhcp: cleanup of static lease handling
authorDenys Vlasenko <vda.linux@googlemail.com>
Tue, 16 Jun 2009 10:03:12 +0000 (12:03 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 16 Jun 2009 10:03:12 +0000 (12:03 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
networking/udhcp/dhcpd.c
networking/udhcp/dhcpd.h
networking/udhcp/files.c
networking/udhcp/leases.c
networking/udhcp/serverpacket.c
networking/udhcp/static_leases.c

index 09524e29cdd857f678c81055130d3b75abdc4764..5993042cdb8290569854cf1090ed3885f4c3c983 100644 (file)
@@ -166,7 +166,7 @@ int udhcpd_main(int argc UNUSED_PARAM, char **argv)
                }
 
                /* Look for a static lease */
-               static_lease_ip = getIpByMac(server_config.static_leases, &packet.chaddr);
+               static_lease_ip = get_static_nip_by_mac(server_config.static_leases, &packet.chaddr);
                if (static_lease_ip) {
                        bb_info_msg("Found static lease: %x", static_lease_ip);
 
index 61cd8c7be2c18d3ec6ea2bedbd59abd8a1493559..4774fd12c6d9e47e1ecdfb748e4b0a332d54a173 100644 (file)
@@ -23,7 +23,7 @@ struct option_set {
 
 struct static_lease {
        struct static_lease *next;
-       uint32_t ip;
+       uint32_t nip;
        uint8_t mac[6];
 };
 
@@ -97,15 +97,15 @@ uint32_t find_free_or_expired_address(const uint8_t *chaddr) FAST_FUNC;
 
 /*** static_leases.h ***/
 
-/* Config file will pass static lease info to this function which will add it
- * to a data structure that can be searched later */
-void addStaticLease(struct static_lease **lease_struct, uint8_t *mac, uint32_t ip) FAST_FUNC;
-/* Check to see if a mac has an associated static lease */
-uint32_t getIpByMac(struct static_lease *lease_struct, void *arg) FAST_FUNC;
-/* Check to see if an ip is reserved as a static ip */
-int reservedIp(struct static_lease *lease_struct, uint32_t ip) FAST_FUNC;
+/* Config file parser will pass static lease info to this function
+ * which will add it to a data structure that can be searched later */
+void add_static_lease(struct static_lease **st_lease_pp, uint8_t *mac, uint32_t nip) FAST_FUNC;
+/* Find static lease IP by mac */
+uint32_t get_static_nip_by_mac(struct static_lease *st_lease, void *arg) FAST_FUNC;
+/* Check to see if an IP is reserved as a static IP */
+int is_nip_reserved(struct static_lease *st_lease, uint32_t nip) FAST_FUNC;
 /* Print out static leases just to check what's going on (debug code) */
-void printStaticLeases(struct static_lease **lease_struct) FAST_FUNC;
+void print_static_leases(struct static_lease **st_lease_pp) FAST_FUNC;
 
 
 /*** serverpacket.h ***/
index a69a7531bd059e4ad52cb9f115987366b168be97..f3899711cb414405ed454a13da4a61a30c87e0b6 100644 (file)
@@ -268,9 +268,9 @@ static int FAST_FUNC read_staticlease(const char *const_line, void *arg)
        ip_string = strtok_r(NULL, " \t", &line);
        read_nip(ip_string, &ip);
 
-       addStaticLease(arg, (uint8_t*) &mac_bytes, ip);
+       add_static_lease(arg, (uint8_t*) &mac_bytes, ip);
 
-       if (ENABLE_UDHCP_DEBUG) printStaticLeases(arg);
+       if (ENABLE_UDHCP_DEBUG) print_static_leases(arg);
 
        return 1;
 }
index 403a8bca6665ea01cef1f406ac5e704500851355..c318856f5eb01c3578721702556c53ca3d3c7e40 100644 (file)
@@ -159,8 +159,8 @@ uint32_t FAST_FUNC find_free_or_expired_address(const uint8_t *chaddr)
                if ((addr & 0xff) == 0xff)
                        continue;
                net_addr = htonl(addr);
-               /* addr has a static lease? */
-               if (reservedIp(server_config.static_leases, net_addr))
+               /* is this a static lease addr? */
+               if (is_nip_reserved(server_config.static_leases, net_addr))
                        continue;
 
                lease = find_lease_by_yiaddr(net_addr);
index 294a6a666e78dffc1763b13695a5409e7c44f68b..5aa494ba13f83215a345570bc5116756ae21af0e 100644 (file)
@@ -120,7 +120,7 @@ int FAST_FUNC send_offer(struct dhcpMessage *oldpacket)
 
        init_packet(&packet, oldpacket, DHCPOFFER);
 
-       static_lease_ip = getIpByMac(server_config.static_leases, oldpacket->chaddr);
+       static_lease_ip = get_static_nip_by_mac(server_config.static_leases, oldpacket->chaddr);
 
        /* ADDME: if static, short circuit */
        if (!static_lease_ip) {
index 1e77a58f9d2f083d48f82e327b325eb0acc1d5db..7d1aa2f27e427036b01e1453fd76b7a9815a7562 100644 (file)
 
 
 /* Takes the address of the pointer to the static_leases linked list,
- *   Address to a 6 byte mac address
- *   Address to a 4 byte ip address */
-void FAST_FUNC addStaticLease(struct static_lease **lease_struct, uint8_t *mac, uint32_t ip)
+ * address to a 6 byte mac address,
+ * 4 byte IP address */
+void FAST_FUNC add_static_lease(struct static_lease **st_lease_pp,
+               uint8_t *mac,
+               uint32_t nip)
 {
-       struct static_lease *new_static_lease;
+       struct static_lease *st_lease;
 
-       /* Build new node */
-       new_static_lease = xzalloc(sizeof(struct static_lease));
-       memcpy(new_static_lease->mac, mac, 6);
-       new_static_lease->ip = ip;
-       /*new_static_lease->next = NULL;*/
-
-       /* If it's the first node to be added... */
-       if (*lease_struct == NULL) {
-               *lease_struct = new_static_lease;
-       } else {
-               struct static_lease *cur = *lease_struct;
-               while (cur->next)
-                       cur = cur->next;
-               cur->next = new_static_lease;
+       /* Find the tail of the list */
+       while ((st_lease = *st_lease_pp) != NULL) {
+               st_lease_pp = &st_lease->next;
        }
+
+       /* Add new node */
+       *st_lease_pp = st_lease = xzalloc(sizeof(*st_lease));
+       memcpy(st_lease->mac, mac, 6);
+       st_lease->nip = nip;
+       /*st_lease->next = NULL;*/
 }
 
-/* Check to see if a mac has an associated static lease */
-uint32_t FAST_FUNC getIpByMac(struct static_lease *lease_struct, void *mac)
+/* Find static lease IP by mac */
+uint32_t FAST_FUNC get_static_nip_by_mac(struct static_lease *st_lease, void *mac)
 {
-       while (lease_struct) {
-               if (memcmp(lease_struct->mac, mac, 6) == 0)
-                       return lease_struct->ip;
-               lease_struct = lease_struct->next;
+       while (st_lease) {
+               if (memcmp(st_lease->mac, mac, 6) == 0)
+                       return st_lease->nip;
+               st_lease = st_lease->next;
        }
 
        return 0;
 }
 
-/* Check to see if an ip is reserved as a static ip */
-int FAST_FUNC reservedIp(struct static_lease *lease_struct, uint32_t ip)
+/* Check to see if an IP is reserved as a static IP */
+int FAST_FUNC is_nip_reserved(struct static_lease *st_lease, uint32_t nip)
 {
-       while (lease_struct) {
-               if (lease_struct->ip == ip)
+       while (st_lease) {
+               if (st_lease->nip == nip)
                        return 1;
-               lease_struct = lease_struct->next;
+               st_lease = st_lease->next;
        }
 
        return 0;
@@ -63,16 +60,16 @@ int FAST_FUNC reservedIp(struct static_lease *lease_struct, uint32_t ip)
 #if ENABLE_UDHCP_DEBUG
 /* Print out static leases just to check what's going on */
 /* Takes the address of the pointer to the static_leases linked list */
-void FAST_FUNC printStaticLeases(struct static_lease **arg)
+void FAST_FUNC print_static_leases(struct static_lease **st_lease_pp)
 {
-       struct static_lease *cur = *arg;
+       struct static_lease *cur = *st_lease_pp;
 
        while (cur) {
-               printf("PrintStaticLeases: Lease mac Value: %02x:%02x:%02x:%02x:%02x:%02x\n",
+               printf("PrintStaticLeases: lease mac: %02x:%02x:%02x:%02x:%02x:%02x\n",
                        cur->mac[0], cur->mac[1], cur->mac[2],
                        cur->mac[3], cur->mac[4], cur->mac[5]
                );
-               printf("PrintStaticLeases: Lease ip Value: %x\n", cur->ip);
+               printf("PrintStaticLeases: lease ip: %x\n", cur->nip);
                cur = cur->next;
        }
 }