+static char *dhcpv4_msg_to_string(uint8_t reqmsg)
+{
+ switch (reqmsg) {
+ case (DHCPV4_MSG_DISCOVER):
+ return "DHCPV4_MSG_DISCOVER";
+ case (DHCPV4_MSG_OFFER):
+ return "DHCPV4_MSG_OFFER";
+ case (DHCPV4_MSG_REQUEST):
+ return "DHCPV4_MSG_REQUEST";
+ case (DHCPV4_MSG_DECLINE):
+ return "DHCPV4_MSG_DECLINE";
+ case (DHCPV4_MSG_ACK):
+ return "DHCPV4_MSG_ACK";
+ case (DHCPV4_MSG_NAK):
+ return "DHCPV4_MSG_NAK";
+ case (DHCPV4_MSG_RELEASE):
+ return "DHCPV4_MSG_RELEASE";
+ case (DHCPV4_MSG_INFORM):
+ return "DHCPV4_MSG_INFORM";
+ default:
+ return "UNKNOWN";
+ }
+}
+
+static void free_dhcpv4_assignment(struct dhcpv4_assignment *a)
+{
+ if (a->head.next)
+ list_del(&a->head);
+
+ free(a->hostname);
+ free(a);
+}