WebKit Bugzilla
Attachment 339224 Details for
Bug 181009
: Cannot gather srflx or relay ICE candidates on IPv6 network (ICE agent hangs?)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-181009-20180501142212.patch (text/plain), 2.45 KB, created by
youenn fablet
on 2018-05-01 14:22:12 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
youenn fablet
Created:
2018-05-01 14:22:12 PDT
Size:
2.45 KB
patch
obsolete
>Subversion Revision: 231197 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index b75bdca967a5084ed26fee01d9e79d5870869531..07a0eee4349ea18dcdf3d4feb94e03c6dbfed019 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,24 @@ >+2018-05-01 Youenn Fablet <youenn@apple.com> >+ >+ Cannot gather srflx or relay ICE candidates on IPv6 network (ICE agent hangs?) >+ https://bugs.webkit.org/show_bug.cgi?id=181009 >+ <rdar://problem/36144555> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ On iOS/IPv6 networks, STUN servers name resolution returns a zero IPv6 IP address. >+ No error is raised which leads to sending STUN requests with that IP address. >+ Once the request times out, the ICE candidate gathering finishes with host candidates only. >+ >+ This patch makes WebRTC DNS resolver to send only IPv4 resolved addresses. >+ STUN is used for NAT traversal which is for IPv4 addresses. >+ Not sending IPv6 addresses allows terminating ICE candidate gathering sooner. >+ >+ Manually tested on iOS with IPv4/IPv6 and IPv6 networks. >+ >+ * NetworkProcess/webrtc/NetworkRTCResolverCocoa.cpp: >+ (WebKit::resolvedName): >+ > 2018-05-01 Oleksandr Skachkov <gskachkov@gmail.com> > > WebAssembly: add support for stream APIs - JavaScript API >diff --git a/Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolverCocoa.cpp b/Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolverCocoa.cpp >index 494dae446d9c52b18275888ea7ceccc245625e9d..5f9b9dfba23436e444362e834d0ed672fa904796 100644 >--- a/Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolverCocoa.cpp >+++ b/Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolverCocoa.cpp >@@ -56,7 +56,13 @@ static void resolvedName(CFHostRef hostRef, CFHostInfoType typeInfo, const CFStr > for (size_t index = 0; index < count; ++index) { > CFDataRef data = (CFDataRef)CFArrayGetValueAtIndex(resolvedAddresses, index); > auto* address = reinterpret_cast<const struct sockaddr_in*>(CFDataGetBytePtr(data)); >- addresses.uncheckedAppend(WebCore::IPAddress(*address)); >+ if (address->sin_family == AF_INET) >+ addresses.uncheckedAppend(WebCore::IPAddress(*address)); >+ // FIXME: We should probably return AF_INET6 addresses as well. >+ } >+ if (addresses.isEmpty()) { >+ resolver->completed(makeUnexpected(WebCore::DNSError::CannotResolve)); >+ return; > } > resolver->completed(WTFMove(addresses)); > }
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
|
Formatted Diff
|
Diff
Attachments on
bug 181009
: 339224