From: Daniel Stenberg Date: Mon, 10 Jan 2011 23:14:36 +0000 (+0100) Subject: connect: use UDP correctly X-Git-Tag: curl-7_21_4~75 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=08a65b10fbbee20926211a9deb99b1ce8328d91a;p=curl 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" --- diff --git a/lib/connect.c b/lib/connect.c index 604bb2a1a..bcc1ed74a 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -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))