connect: use UDP correctly

The idea that the protocol and socktype is part of name resolving in the
libc functions is nuts. We keep the name resolver functions assume
TCP/STREAM and we make sure that when we want to connect to a UDP
service we use the correct UDP/DGRAM set instead. This bug was because
the ->protocol field was not always set correctly.

This bug was only affecting ipv6-disabled non-cares non-threaded builds.

Bug: http://curl.haxx.se/bug/view.cgi?id=3154436
Reported by: "dperham"
This commit is contained in:
Daniel Stenberg 2011-01-11 00:14:36 +01:00
parent 1238edaeaf
commit 08a65b10fb
1 changed files with 1 additions and 1 deletions

View File

@ -857,7 +857,7 @@ singleipconnect(struct connectdata *conn,
addr.family = ai->ai_family;
addr.socktype = conn->socktype;
addr.protocol = ai->ai_protocol;
addr.protocol = conn->socktype==SOCK_DGRAM?IPPROTO_UDP:ai->ai_protocol;
addr.addrlen = ai->ai_addrlen;
if(addr.addrlen > sizeof(struct Curl_sockaddr_storage))