diff --git a/src/xdpfw.c b/src/xdpfw.c index 0f6ec10..149a8a5 100644 --- a/src/xdpfw.c +++ b/src/xdpfw.c @@ -381,21 +381,15 @@ int main(int argc, char *argv[]) fprintf(stdout, "\t\tDestination IPv4 => %s\n", inet_ntoa(din.sin_addr)); struct in6_addr sin6; - sin6.__in6_u.__u6_addr32[0] = cfg.filters[i].srcip6[0]; - sin6.__in6_u.__u6_addr32[1] = cfg.filters[i].srcip6[1]; - sin6.__in6_u.__u6_addr32[2] = cfg.filters[i].srcip6[2]; - sin6.__in6_u.__u6_addr32[3] = cfg.filters[i].srcip6[3]; - + memcpy(&sin6, &cfg.filters[i].srcip6, sizeof(sin6)); + char srcipv6[INET6_ADDRSTRLEN]; inet_ntop(AF_INET6, &sin6, srcipv6, sizeof(srcipv6)); fprintf(stdout, "\t\tSource IPv6 => %s\n", srcipv6); struct in6_addr din6; - din6.__in6_u.__u6_addr32[0] = cfg.filters[i].dstip6[0]; - din6.__in6_u.__u6_addr32[1] = cfg.filters[i].dstip6[1]; - din6.__in6_u.__u6_addr32[2] = cfg.filters[i].dstip6[2]; - din6.__in6_u.__u6_addr32[3] = cfg.filters[i].dstip6[3]; + memcpy(&din6, &cfg.filters[i].dstip6, sizeof(din6)); char dstipv6[INET6_ADDRSTRLEN]; inet_ntop(AF_INET6, &din6, dstipv6, sizeof(dstipv6));