The function conf_print() uses three different buffers as target
for address print formatting. This is unnecessary, as a single
buffer of length INET6_ADDRSTRLEN has sufficient space for all
address types, IPv4, IPv6 and MAC. There is no risk for conflicts,
since all formatting is followed by an immediate info() printout.
To make our life easier in the following commits, we do this
simplification here.
Signed-off-by: Jon Maloy
---
conf.c | 35 ++++++++++++++++++-----------------
1 file changed, 18 insertions(+), 17 deletions(-)
diff --git a/conf.c b/conf.c
index dafac46..9bcd9de 100644
--- a/conf.c
+++ b/conf.c
@@ -1136,11 +1136,12 @@ enum passt_modes conf_mode(int argc, char *argv[])
*/
static void conf_print(const struct ctx *c)
{
- char buf4[INET_ADDRSTRLEN], buf6[INET6_ADDRSTRLEN];
- char bufmac[ETH_ADDRSTRLEN], ifn[IFNAMSIZ];
+ char buf[INET6_ADDRSTRLEN];
int i;
if (c->ifi4 > 0 || c->ifi6 > 0) {
+ char ifn[IFNAMSIZ];
+
info("Template interface: %s%s%s%s%s",
c->ifi4 > 0 ? if_indextoname(c->ifi4, ifn) : "",
c->ifi4 > 0 ? " (IPv4)" : "",
@@ -1162,24 +1163,24 @@ static void conf_print(const struct ctx *c)
!IN6_IS_ADDR_UNSPECIFIED(&c->ip6.addr_out)) {
info("Outbound address: %s%s%s",
IN4_IS_ADDR_UNSPECIFIED(&c->ip4.addr_out) ? "" :
- inet_ntop(AF_INET, &c->ip4.addr_out, buf4, sizeof(buf4)),
+ inet_ntop(AF_INET, &c->ip4.addr_out, buf, sizeof(buf)),
(!IN4_IS_ADDR_UNSPECIFIED(&c->ip4.addr_out) &&
!IN6_IS_ADDR_UNSPECIFIED(&c->ip6.addr_out)) ? ", " : "",
IN6_IS_ADDR_UNSPECIFIED(&c->ip6.addr_out) ? "" :
- inet_ntop(AF_INET6, &c->ip6.addr_out, buf6, sizeof(buf6)));
+ inet_ntop(AF_INET6, &c->ip6.addr_out, buf, sizeof(buf)));
}
if (c->mode == MODE_PASTA && !c->splice_only)
info("Namespace interface: %s", c->pasta_ifn);
info("MAC:");
- info(" host: %s", eth_ntop(c->our_tap_mac, bufmac, sizeof(bufmac)));
+ info(" host: %s", eth_ntop(c->our_tap_mac, buf, sizeof(buf)));
if (c->ifi4) {
if (!IN4_IS_ADDR_UNSPECIFIED(&c->ip4.map_host_loopback))
info(" NAT to host 127.0.0.1: %s",
inet_ntop(AF_INET, &c->ip4.map_host_loopback,
- buf4, sizeof(buf4)));
+ buf, sizeof(buf)));
if (!c->no_dhcp) {
uint32_t mask;
@@ -1188,12 +1189,12 @@ static void conf_print(const struct ctx *c)
info("DHCP:");
info(" assign: %s",
- inet_ntop(AF_INET, &c->ip4.addr, buf4, sizeof(buf4)));
+ inet_ntop(AF_INET, &c->ip4.addr, buf, sizeof(buf)));
info(" mask: %s",
- inet_ntop(AF_INET, &mask, buf4, sizeof(buf4)));
+ inet_ntop(AF_INET, &mask, buf, sizeof(buf)));
info(" router: %s",
inet_ntop(AF_INET, &c->ip4.guest_gw,
- buf4, sizeof(buf4)));
+ buf, sizeof(buf)));
}
for (i = 0; i < ARRAY_SIZE(c->ip4.dns); i++) {
@@ -1201,8 +1202,8 @@ static void conf_print(const struct ctx *c)
break;
if (!i)
info("DNS:");
- inet_ntop(AF_INET, &c->ip4.dns[i], buf4, sizeof(buf4));
- info(" %s", buf4);
+ inet_ntop(AF_INET, &c->ip4.dns[i], buf, sizeof(buf));
+ info(" %s", buf);
}
for (i = 0; *c->dns_search[i].n; i++) {
@@ -1216,7 +1217,7 @@ static void conf_print(const struct ctx *c)
if (!IN6_IS_ADDR_UNSPECIFIED(&c->ip6.map_host_loopback))
info(" NAT to host ::1: %s",
inet_ntop(AF_INET6, &c->ip6.map_host_loopback,
- buf6, sizeof(buf6)));
+ buf, sizeof(buf)));
if (!c->no_ndp && !c->no_dhcpv6)
info("NDP/DHCPv6:");
@@ -1228,12 +1229,12 @@ static void conf_print(const struct ctx *c)
goto dns6;
info(" assign: %s",
- inet_ntop(AF_INET6, &c->ip6.addr, buf6, sizeof(buf6)));
+ inet_ntop(AF_INET6, &c->ip6.addr, buf, sizeof(buf)));
info(" router: %s",
- inet_ntop(AF_INET6, &c->ip6.guest_gw, buf6, sizeof(buf6)));
+ inet_ntop(AF_INET6, &c->ip6.guest_gw, buf, sizeof(buf)));
info(" our link-local: %s",
inet_ntop(AF_INET6, &c->ip6.our_tap_ll,
- buf6, sizeof(buf6)));
+ buf, sizeof(buf)));
dns6:
for (i = 0; i < ARRAY_SIZE(c->ip6.dns); i++) {
@@ -1241,8 +1242,8 @@ dns6:
break;
if (!i)
info("DNS:");
- inet_ntop(AF_INET6, &c->ip6.dns[i], buf6, sizeof(buf6));
- info(" %s", buf6);
+ inet_ntop(AF_INET6, &c->ip6.dns[i], buf, sizeof(buf));
+ info(" %s", buf);
}
for (i = 0; *c->dns_search[i].n; i++) {
--
2.52.0