Currently, I haven't changed much code, just introduced in6addr_whod_group like INADDR_WHOD_GROUP is for ipv4. Also changed come code in main() to use getaddrinfo(3) with AF_UNSPEC.
Also struct servent *hp was a global variable just being used for port information. So I replaced it with in_port_t who_port.
I didn't change code further to first get advise on how should I conditionally select ipv6/ipv4 for
multicast. The global multicast_addr currently sticks to AF_INET. I can use struct sockaddr_storage,
but on what basis should I select whether to use` ipv6` or ipv4, like should I conditionally allow both or
take it as input through args?