Я пытаюсь выяснить, какие значения по умолчанию используются для опции IP_MULTICAST_IF после настройки нового сокета. К сожалению, мой код segfaults, и я на самом деле не знаю, почему ?! Я что-то не так делаю, или как получить значения по умолчанию для опции IP_MULTICAST_IF?
int sock;
struct in_addr interface_addr;
int addr_size;
if ((sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
perror("socket() failed");
}
addr_size = sizeof(interface_addr);
if ((getsockopt(sock, IPPROTO_IP, IP_MULTICAST_IF, &interface_addr, &addr_size)) < 0) {
perror("getsockopt() failed");
}
printf("The default interface is %s\n", inet_ntoa(interface_addr));