Remove nested struct/union in cache records and all_addr.
diff --git a/src/dhcp.c b/src/dhcp.c
index 6689f2f..f71024d 100644
--- a/src/dhcp.c
+++ b/src/dhcp.c
@@ -310,7 +310,7 @@
parm.relay_local.s_addr = 0;
parm.ind = iface_index;
- if (!iface_check(AF_INET, (struct all_addr *)&iface_addr, ifr.ifr_name, NULL))
+ if (!iface_check(AF_INET, (union all_addr *)&iface_addr, ifr.ifr_name, NULL))
{
/* If we failed to match the primary address of the interface, see if we've got a --listen-address
for a secondary */
@@ -558,7 +558,7 @@
}
for (relay = daemon->relay4; relay; relay = relay->next)
- if (if_index == param->ind && relay->local.addr.addr4.s_addr == local.s_addr && relay->current == relay &&
+ if (if_index == param->ind && relay->local.addr4.s_addr == local.s_addr && relay->current == relay &&
(param->relay_local.s_addr == 0 || param->relay_local.s_addr == local.s_addr))
{
relay->current = param->relay;
@@ -984,7 +984,7 @@
if (daemon->port == 0)
return NULL; /* DNS disabled. */
- lookup = cache_find_by_addr(NULL, (struct all_addr *)&addr, 0, F_IPV4);
+ lookup = cache_find_by_addr(NULL, (union all_addr *)&addr, 0, F_IPV4);
if (lookup && (lookup->flags & F_HOSTS))
{
@@ -1013,25 +1013,25 @@
static int relay_upstream4(struct dhcp_relay *relay, struct dhcp_packet *mess, size_t sz, int iface_index)
{
/* ->local is same value for all relays on ->current chain */
- struct all_addr from;
+ union all_addr from;
if (mess->op != BOOTREQUEST)
return 0;
/* source address == relay address */
- from.addr.addr4 = relay->local.addr.addr4;
+ from.addr4 = relay->local.addr4;
/* already gatewayed ? */
if (mess->giaddr.s_addr)
{
/* if so check if by us, to stomp on loops. */
- if (mess->giaddr.s_addr == relay->local.addr.addr4.s_addr)
+ if (mess->giaddr.s_addr == relay->local.addr4.s_addr)
return 1;
}
else
{
/* plug in our address */
- mess->giaddr.s_addr = relay->local.addr.addr4.s_addr;
+ mess->giaddr.s_addr = relay->local.addr4.s_addr;
}
if ((mess->hops++) > 20)
@@ -1042,7 +1042,7 @@
union mysockaddr to;
to.sa.sa_family = AF_INET;
- to.in.sin_addr = relay->server.addr.addr4;
+ to.in.sin_addr = relay->server.addr4;
to.in.sin_port = htons(daemon->dhcp_server_port);
send_from(daemon->dhcpfd, 0, (char *)mess, sz, &to, &from, 0);
@@ -1050,7 +1050,7 @@
if (option_bool(OPT_LOG_OPTS))
{
inet_ntop(AF_INET, &relay->local, daemon->addrbuff, ADDRSTRLEN);
- my_syslog(MS_DHCP | LOG_INFO, _("DHCP relay %s -> %s"), daemon->addrbuff, inet_ntoa(relay->server.addr.addr4));
+ my_syslog(MS_DHCP | LOG_INFO, _("DHCP relay %s -> %s"), daemon->addrbuff, inet_ntoa(relay->server.addr4));
}
/* Save this for replies */
@@ -1070,7 +1070,7 @@
for (relay = daemon->relay4; relay; relay = relay->next)
{
- if (mess->giaddr.s_addr == relay->local.addr.addr4.s_addr)
+ if (mess->giaddr.s_addr == relay->local.addr4.s_addr)
{
if (!relay->interface || wildcard_match(relay->interface, arrival_interface))
return relay->iface_index != 0 ? relay : NULL;