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:
parent
1238edaeaf
commit
08a65b10fb
@ -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))
|
||||
|
Loading…
x
Reference in New Issue
Block a user