sync hostfile more often
authorSteven Barth <steven@midlink.org>
Thu, 7 Aug 2014 18:08:31 +0000 (20:08 +0200)
committerSteven Barth <steven@midlink.org>
Thu, 7 Aug 2014 18:08:31 +0000 (20:08 +0200)
src/dhcpv4.c
src/dhcpv6-ia.c

index 9746aa2f3f9c6a8e88bc32683eed50d6821b5dcf..2093ecd037b173df7b286f9e08983dae945a8266 100644 (file)
@@ -491,7 +491,6 @@ static struct dhcpv4_assignment* dhcpv4_lease(struct interface *iface,
                }
        }
 
-       bool update_state = false;
        if (msg == DHCPV4_MSG_DISCOVER || msg == DHCPV4_MSG_REQUEST) {
                bool assigned = !!a;
                size_t hostlen = strlen(hostname) + 1;
@@ -530,24 +529,18 @@ static struct dhcpv4_assignment* dhcpv4_lease(struct interface *iface,
                        a = NULL;
                }
 
-               if (a)
-                       update_state = true;
-
                if (assigned && a)
                        lease = a;
        } else if (msg == DHCPV4_MSG_RELEASE) {
                if (a) {
                        a->valid_until = 0;
-                       update_state = true;
                }
        } else if (msg == DHCPV4_MSG_DECLINE) {
                memset(a->hwaddr, 0, sizeof(a->hwaddr));
                a->valid_until = now + 3600; // Block address for 1h
-               update_state = true;
        }
 
-       if (update_state)
-               dhcpv6_write_statefile();
+       dhcpv6_write_statefile();
 
        return lease;
 }
index 610bca3162a1aab8b5041a6199d8b1d69352708f..8f0307ea1bab71649385292c146924082a9353cf 100644 (file)
@@ -976,7 +976,6 @@ ssize_t dhcpv6_handle_ia(uint8_t *buf, size_t buflen, struct interface *iface,
                goto out;
 
        update(iface);
-       bool update_state = false;
 
        struct dhcpv6_assignment *first = NULL;
        dhcpv6_for_each_option(start, end, otype, olen, odata) {
@@ -1165,7 +1164,6 @@ ssize_t dhcpv6_handle_ia(uint8_t *buf, size_t buflen, struct interface *iface,
                                }
                                a->accept_reconf = accept_reconf;
                                apply_lease(iface, a, true);
-                               update_state = true;
                        } else if (!assigned && a && a->managed_size == 0) { // Cleanup failed assignment
                                free_dhcpv6_assignment(a);
                        }
@@ -1184,11 +1182,9 @@ ssize_t dhcpv6_handle_ia(uint8_t *buf, size_t buflen, struct interface *iface,
                        } else if (hdr->msg_type == DHCPV6_MSG_RELEASE) {
                                a->valid_until = 0;
                                apply_lease(iface, a, false);
-                               update_state = true;
                        } else if (hdr->msg_type == DHCPV6_MSG_DECLINE && a->length == 128) {
                                a->clid_len = 0;
                                a->valid_until = now + 3600; // Block address for 1h
-                               update_state = true;
                        }
                } else if (hdr->msg_type == DHCPV6_MSG_CONFIRM && ia_addr_present) {
                        // Send NOTONLINK for CONFIRM with addr present so that clients restart connection
@@ -1213,8 +1209,7 @@ ssize_t dhcpv6_handle_ia(uint8_t *buf, size_t buflen, struct interface *iface,
                response_len += 6;
        }
 
-       if (update_state)
-               dhcpv6_write_statefile();
+       dhcpv6_write_statefile();
 
 out:
        return response_len;