Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 242239 Details for
Bug 331965
net-proxy/squid-3.1.6 https broken with -ipv6
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
modified patch for 3.1.6
squid-ipv4.patch (text/plain), 4.32 KB, created by
Leonid Kabanov
on 2010-08-10 12:37:34 UTC
(
hide
)
Description:
modified patch for 3.1.6
Filename:
MIME Type:
Creator:
Leonid Kabanov
Created:
2010-08-10 12:37:34 UTC
Size:
4.32 KB
patch
obsolete
>diff -ur ./src/dns_internal.cc /var/tmp/squid-3.1.6/src/dns_internal.cc >--- ./src/dns_internal.cc 2010-08-01 22:01:37.000000000 +0800 >+++ /var/tmp/squid-3.1.6/src/dns_internal.cc 2010-08-10 19:31:46.000000000 +0800 >@@ -201,10 +201,15 @@ > > if (A.IsAnyAddr()) { > debugs(78, 0, "WARNING: Squid does not accept " << A << " in DNS server specifications."); >- A = "127.0.0.1"; >+ A.SetLocalhost(); > debugs(78, 0, "Will be using " << A << " instead, assuming you meant that DNS is running on the same machine"); > } > >+ if (!Ip::EnableIpv6 && !A.SetIPv4()) { >+ debugs(78, DBG_IMPORTANT, "WARNING: IPv6 is disabled. Discarding " << A << " in DNS server specifications."); >+ return; >+ } >+ > if (nns == nns_alloc) { > int oldalloc = nns_alloc; > ns *oldptr = nameservers; >@@ -742,6 +747,12 @@ > else > addr = Config.Addrs.udp_incoming; > >+ if (nameservers[ns].S.IsIPv4() && !addr.SetIPv4()) { >+ debugs(31, DBG_CRITICAL, "ERROR: Cannot contact DNS nameserver " << nameservers[ns].S << " from " << addr); >+ addr.SetAnyAddr(); >+ addr.SetIPv4(); >+ } >+ > vc->queue = new MemBuf; > > vc->msg = new MemBuf; >diff -ur ./src/forward.cc /var/tmp/squid-3.1.6/src/forward.cc >--- ./src/forward.cc 2010-08-01 22:01:37.000000000 +0800 >+++ /var/tmp/squid-3.1.6/src/forward.cc 2010-08-10 19:31:46.000000000 +0800 >@@ -870,9 +870,9 @@ > > // if IPv6 is disabled try to force IPv4-only outgoing. > if (!Ip::EnableIpv6 && !outgoing.SetIPv4()) { >- debugs(50, 4, "fwdConnectStart: " << xstrerror()); >+ debugs(50, 4, "fwdConnectStart: IPv6 is Disabled. Cannot connect from " << outgoing); > ErrorState *anErr = errorCon(ERR_CONNECT_FAIL, HTTP_SERVICE_UNAVAILABLE, request); >- anErr->xerrno = errno; >+ anErr->xerrno = EAFNOSUPPORT; > fail(anErr); > self = NULL; // refcounted > return; >diff -ur ./src/neighbors.cc /var/tmp/squid-3.1.6/src/neighbors.cc >--- ./src/neighbors.cc 2010-08-01 22:01:38.000000000 +0800 >+++ /var/tmp/squid-3.1.6/src/neighbors.cc 2010-08-10 19:49:16.000000000 +0800 >@@ -46,6 +46,7 @@ > #include "Store.h" > #include "icmp/net_db.h" > #include "ip/IpAddress.h" >+#include "ip/tools.h" > > /* count mcast group peers every 15 minutes */ > #define MCAST_COUNT_RATE 900 >@@ -1387,6 +1388,20 @@ > > IpAddress temp(getOutgoingAddr(NULL,p)); > >+ // if IPv6 is disabled try to force IPv4-only outgoing. >+ if (!Ip::EnableIpv6 && !temp.SetIPv4()) { >+ debugs(50, DBG_IMPORTANT, "WARNING: IPv6 is disabled. Failed to use " << temp << " to probe " << p->host); >+ return ret; >+ } >+ >+ // if IPv6 is split-stack, prefer IPv4 >+ if (Ip::EnableIpv6&IPV6_SPECIAL_SPLITSTACK) { >+ // NP: This is not a great choice of default, >+ // but with the current Internet being IPv4-majority has a higher success rate. >+ // if setting to IPv4 fails we dont care, that just means to use IPv6 outgoing. >+ temp.SetIPv4(); >+ } >+ > fd = comm_open(SOCK_STREAM, IPPROTO_TCP, temp, COMM_NONBLOCKING, p->host); > > if (fd < 0) >diff -ur ./src/tunnel.cc /var/tmp/squid-3.1.6/src/tunnel.cc >--- ./src/tunnel.cc 2010-08-01 22:01:38.000000000 +0800 >+++ /var/tmp/squid-3.1.6/src/tunnel.cc 2010-08-10 20:02:46.000000000 +0800 >@@ -46,6 +46,7 @@ > #include "client_side.h" > #include "MemBuf.h" > #include "http.h" >+#include "ip/tools.h" > > class TunnelStateData > { >@@ -641,6 +642,24 @@ > statCounter.server.other.requests++; > /* Create socket. */ > IpAddress temp = getOutgoingAddr(request,NULL); >+ >+ // if IPv6 is disabled try to force IPv4-only outgoing. >+ if (!Ip::EnableIpv6 && !temp.SetIPv4()) { >+ debugs(50, 4, "tunnelStart: IPv6 is Disabled. Tunnel failed from " << temp); >+ err = errorCon(ERR_CONNECT_FAIL, HTTP_SERVICE_UNAVAILABLE, request); >+ err->xerrno = EAFNOSUPPORT; >+ errorSend(fd, err); >+ return; >+ } >+ >+ // if IPv6 is split-stack, prefer IPv4 >+ if (Ip::EnableIpv6&IPV6_SPECIAL_SPLITSTACK) { >+ // NP: This is not a great choice of default, >+ // but with the current Internet being IPv4-majority has a higher success rate. >+ // if setting to IPv4 fails we dont care, that just means to use IPv6 outgoing. >+ temp.SetIPv4(); >+ } >+ > int flags = COMM_NONBLOCKING; > if (request->flags.spoof_client_ip) { > flags |= COMM_TRANSPARENT;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 331965
: 242239