You've already forked linux-packaging-mono
Imported Upstream version 4.8.0.309
Former-commit-id: 5f9c6ae75f295e057a7d2971f3a6df4656fa8850
This commit is contained in:
parent
ee1447783b
commit
94b2861243
@ -100,5 +100,50 @@ namespace System.Net.Sockets
|
||||
if (!silent && error != 0)
|
||||
throw new SocketException (error);
|
||||
}
|
||||
|
||||
internal bool CanTryAddressFamily (AddressFamily family)
|
||||
{
|
||||
return (family == address_family) || (family == AddressFamily.InterNetwork && IsDualMode);
|
||||
}
|
||||
|
||||
public static bool ConnectAsync(SocketType socketType, ProtocolType protocolType, SocketAsyncEventArgs e) {
|
||||
|
||||
bool retval;
|
||||
|
||||
// Throw if multiple buffers specified.
|
||||
if (e.m_BufferList != null) {
|
||||
throw new ArgumentException(SR.GetString(SR.net_multibuffernotsupported), "BufferList");
|
||||
}
|
||||
|
||||
// Throw if RemoteEndPoint is null.
|
||||
if (e.RemoteEndPoint == null) {
|
||||
throw new ArgumentNullException("remoteEP");
|
||||
}
|
||||
|
||||
EndPoint endPointSnapshot = e.RemoteEndPoint;
|
||||
DnsEndPoint dnsEP = endPointSnapshot as DnsEndPoint;
|
||||
|
||||
if (dnsEP != null) {
|
||||
Socket attemptSocket = null;
|
||||
MultipleConnectAsync multipleConnectAsync = null;
|
||||
if (dnsEP.AddressFamily == AddressFamily.Unspecified) {
|
||||
multipleConnectAsync = new MultipleSocketMultipleConnectAsync(socketType, protocolType);
|
||||
} else {
|
||||
attemptSocket = new Socket(dnsEP.AddressFamily, socketType, protocolType);
|
||||
multipleConnectAsync = new SingleSocketMultipleConnectAsync(attemptSocket, false);
|
||||
}
|
||||
|
||||
e.StartOperationCommon(attemptSocket);
|
||||
e.StartOperationWrapperConnect(multipleConnectAsync);
|
||||
|
||||
retval = multipleConnectAsync.StartConnectAsync(e, dnsEP);
|
||||
} else {
|
||||
Socket attemptSocket = new Socket(endPointSnapshot.AddressFamily, socketType, protocolType);
|
||||
retval = attemptSocket.ConnectAsync(e);
|
||||
}
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user