Commit 1aeafcfe authored by Marc Gravell's avatar Marc Gravell

Merge pull request #155 from olviko/pull_req20

A fix for https://github.com/StackExchange/StackExchange.Redis/issues/20
parents ca652fca 378b7ace
...@@ -120,6 +120,7 @@ public void Dispose() ...@@ -120,6 +120,7 @@ public void Dispose()
} }
OnDispose(); OnDispose();
} }
internal SocketToken BeginConnect(EndPoint endpoint, ISocketCallback callback) internal SocketToken BeginConnect(EndPoint endpoint, ISocketCallback callback)
{ {
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
...@@ -130,10 +131,23 @@ internal SocketToken BeginConnect(EndPoint endpoint, ISocketCallback callback) ...@@ -130,10 +131,23 @@ internal SocketToken BeginConnect(EndPoint endpoint, ISocketCallback callback)
CompletionType connectCompletionType = CompletionType.Any; CompletionType connectCompletionType = CompletionType.Any;
this.ShouldForceConnectCompletionType(ref connectCompletionType); this.ShouldForceConnectCompletionType(ref connectCompletionType);
CompletionTypeHelper.RunWithCompletionType( if (endpoint is DnsEndPoint)
(cb) => socket.BeginConnect(endpoint, cb, Tuple.Create(socket, callback)), {
(ar) => EndConnectImpl(ar), // A work-around for a Mono bug in BeginConnect(EndPoint endpoint, AsyncCallback callback, object state)
connectCompletionType); DnsEndPoint dnsEndpoint = (DnsEndPoint)endpoint;
CompletionTypeHelper.RunWithCompletionType(
(cb) => socket.BeginConnect(dnsEndpoint.Host, dnsEndpoint.Port, cb, Tuple.Create(socket, callback)),
(ar) => EndConnectImpl(ar),
connectCompletionType);
}
else
{
CompletionTypeHelper.RunWithCompletionType(
(cb) => socket.BeginConnect(endpoint, cb, Tuple.Create(socket, callback)),
(ar) => EndConnectImpl(ar),
connectCompletionType);
}
} }
catch (NotImplementedException ex) catch (NotImplementedException ex)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment