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()
}
OnDispose();
}
internal SocketToken BeginConnect(EndPoint endpoint, ISocketCallback callback)
{
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
......@@ -130,11 +131,24 @@ internal SocketToken BeginConnect(EndPoint endpoint, ISocketCallback callback)
CompletionType connectCompletionType = CompletionType.Any;
this.ShouldForceConnectCompletionType(ref connectCompletionType);
if (endpoint is DnsEndPoint)
{
// A work-around for a Mono bug in BeginConnect(EndPoint endpoint, AsyncCallback callback, object state)
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)
{
if (!(endpoint is IPEndPoint))
......
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