#ifdef ENABLE_IPV6
resfd6 = socket(AF_INET6, SOCK_DGRAM, 0);
if (resfd6 == -1) {
+ // consider making removing this warning. For now leave it in to see
+ // new code activated. -- REW
fprintf(stderr,
"Unable to allocate IPv6 socket for nameserver communication: %s\n",
strerror(errno));
- exit(-1);
+ // exit(-1);
}
#endif
option = 1;
exit(-1);
}
#ifdef ENABLE_IPV6
- if (setsockopt(resfd6,SOL_SOCKET,SO_BROADCAST,(char *)&option,sizeof(option))) {
- fprintf(stderr,
- "Unable to setsockopt() on IPv6 nameserver communication socket: %s\n",
- strerror(errno));
- exit(-1);
+ if (resfd6 > 0) {
+ if (setsockopt(resfd6,SOL_SOCKET,SO_BROADCAST,(char *)&option,sizeof(option))) {
+ fprintf(stderr,
+ "Unable to setsockopt() on IPv6 nameserver communication socket: %s\n",
+ strerror(errno));
+ exit(-1);
+ }
}
#endif
longipstr( "127.0.0.1", &localhost, AF_INET );
hp = (packetheader *)buf;
hp->id = id; /* htons() deliberately left out (redundant) */
#ifdef ENABLE_IPV6
- for (i = 0;i < NSCOUNT6;i++) {
- if (!NSSOCKADDR6(i))
- continue;
- if (NSSOCKADDR6(i)->sin6_family == AF_INET6)
- (void)sendto(resfd6,buf,r,0,(struct sockaddr *) NSSOCKADDR6(i),
- sizeof(struct sockaddr_in6));
+ if (resfd6 > 0) {
+ for (i = 0;i < NSCOUNT6;i++) {
+ if (!NSSOCKADDR6(i))
+ continue;
+ if (NSSOCKADDR6(i)->sin6_family == AF_INET6)
+ (void)sendto(resfd6,buf,r,0,(struct sockaddr *) NSSOCKADDR6(i),
+ sizeof(struct sockaddr_in6));
+ }
}
#endif
for (i = 0;i < myres.nscount;i++)
int r,i;
static char addrstr[INET6_ADDRSTRLEN];
+ // Probably not necessary. -- REW
+ if (resfd6 < 0) return;
+
r = recvfrom(resfd6,(byte *)resrecvbuf,MaxPacketsize,0,
from, &fromlen);
if (r > 0) {
net_iochannel = g_io_channel_unix_new(net_waitfd());
g_io_add_watch(net_iochannel, G_IO_IN, gtk_net_data, NULL);
#ifdef ENABLE_IPV6
- dns_iochannel = g_io_channel_unix_new(dns_waitfd6());
- g_io_add_watch(dns_iochannel, G_IO_IN, gtk_dns_data6, NULL);
+ if (dns_waitfd6() > 0) {
+ dns_iochannel = g_io_channel_unix_new(dns_waitfd6());
+ g_io_add_watch(dns_iochannel, G_IO_IN, gtk_dns_data6, NULL);
+ }
#endif
dns_iochannel = g_io_channel_unix_new(dns_waitfd());
g_io_add_watch(dns_iochannel, G_IO_IN, gtk_dns_data, NULL);