This is really confusing. There's a field `dhcpr_entry` inside a struct `dhcpr_entry_t`, but the field has type `dhc_relay_t`. Both `dhcpr_entry_t` and `dhc_relay_t` variables are referred to as "entries" in comments.

AFAICT the lifetimes of `dhcpr_entry_t` and `dhc_relay_t` are the same, so simplify everything by making them a single object.