port = addr->sin_port;
else
port = addr6->sin6_port;
- service = lookup_service(port, flags, buf, sizeof(buf));
+ service = lookup_service((unsigned short)(port & 0xffff),
+ flags, buf, sizeof(buf));
callback(arg, ARES_SUCCESS, NULL, service);
return;
}
}
/* They also want a service */
if (flags & ARES_NI_LOOKUPSERVICE)
- service = lookup_service(port, flags, srvbuf, sizeof(srvbuf));
+ service = lookup_service((unsigned short)(port & 0xffff),
+ flags, srvbuf, sizeof(srvbuf));
callback(arg, ARES_SUCCESS, ipbuf, service);
return;
}
memset(&sockin, 0, sizeof(sockin));
sockin.sin_family = AF_INET;
sockin.sin_addr = server->addr;
- sockin.sin_port = channel->tcp_port;
+ sockin.sin_port = (unsigned short)(channel->tcp_port & 0xffff);
if (connect(s, (struct sockaddr *) &sockin, sizeof(sockin)) == -1) {
int err = GET_ERRNO();
memset(&sockin, 0, sizeof(sockin));
sockin.sin_family = AF_INET;
sockin.sin_addr = server->addr;
- sockin.sin_port = channel->udp_port;
+ sockin.sin_port = (unsigned short)(channel->udp_port & 0xffff);
if (connect(s, (struct sockaddr *) &sockin, sizeof(sockin)) == -1)
{
closesocket(s);