Imported Upstream version 5.0.0.78

Former-commit-id: 1a2c1dd1445940afa663f5da05294270f9574676
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2017-04-26 10:05:10 +00:00
parent 270395db27
commit 5c980d35e6
47 changed files with 696 additions and 245 deletions

View File

@ -901,12 +901,11 @@ namespace System.Net.Sockets
SocketAsyncResult ares;
if (!GetCheckedIPs (e, out addresses)) {
e.socket_async_result.EndPoint = e.RemoteEndPoint;
//NOTE: DualMode may cause Socket's RemoteEndpoint to differ in AddressFamily from the
// SocketAsyncEventArgs, but the SocketAsyncEventArgs itself is not changed
ares = (SocketAsyncResult) BeginConnect (e.RemoteEndPoint, ConnectAsyncCallback, e);
} else {
DnsEndPoint dep = (e.RemoteEndPoint as DnsEndPoint);
e.socket_async_result.Addresses = addresses;
e.socket_async_result.Port = dep.Port;
DnsEndPoint dep = (DnsEndPoint)e.RemoteEndPoint;
ares = (SocketAsyncResult) BeginConnect (addresses, dep.Port, ConnectAsyncCallback, e);
}
@ -984,8 +983,8 @@ namespace System.Net.Sockets
sockares.Complete (new SocketException ((int) SocketError.AddressNotAvailable), true);
return sockares;
}
end_point = RemapIPEndPoint (ep);
sockares.EndPoint = end_point = RemapIPEndPoint (ep);
}
int error = 0;