-+ sockaddr.my_sin_family = g_family;
- sockaddr.my_sin_port = htons(g_udp_port);
- sockaddr.my_sin_addr = my_inaddr_any;
- socklen = sizeof (sockaddr);
-@@ -457,7 +477,7 @@ int main(int argc, char *argv[])
+- sockaddr.my_sin_port = htons(g_udp_port);
+- sockaddr.my_sin_addr = my_inaddr_any;
+- socklen = sizeof (sockaddr);
++ if (g_family == AF_INET) {
++ sockaddr.sa.sin_family = g_family;
++ sockaddr.sa.sin_port = htons(g_udp_port);
++ sockaddr.sa.sin_addr = inaddr_any;
++ socklen = sizeof(sockaddr.sa);
++#ifdef __IPV6__
++ } else {
++ sockaddr.sa6.sin6_family = g_family;
++ sockaddr.sa6.sin6_port = htons(g_udp_port);
++ sockaddr.sa6.sin6_addr = in6addr_any;
++ socklen = sizeof(sockaddr.sa6);
++#endif
++ }
+ if (bind(g_udp_sockfd, (struct sockaddr *)&sockaddr, socklen) == -1) {
+ lprintf(LOG_ERR, "could not bind UDP socket to port %d: %m\n", g_udp_port);
+ exit(EXIT_SYSCALL);
+@@ -457,7 +491,7 @@ int main(int argc, char *argv[])