Browse Source

fix #66

tags/2.3
clowwindy 9 years ago
parent
commit
fab822c8bb
2 changed files with 29 additions and 10 deletions
  1. +14
    -5
      shadowsocks-csharp/Controller/Local.cs
  2. +15
    -5
      shadowsocks-csharp/Controller/PACServer.cs

+ 14
- 5
shadowsocks-csharp/Controller/Local.cs View File

@@ -66,16 +66,12 @@ namespace Shadowsocks.Controller
public void AcceptCallback(IAsyncResult ar)
{
Socket listener = (Socket)ar.AsyncState;
try
{
Socket listener = (Socket)ar.AsyncState;
Socket conn = listener.EndAccept(ar);
conn.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, true);
listener.BeginAccept(
new AsyncCallback(AcceptCallback),
listener);
Handler handler = new Handler();
handler.connection = conn;
handler.encryptor = EncryptorFactory.GetEncryptor(_server.method, _server.password);
@@ -87,6 +83,19 @@ namespace Shadowsocks.Controller
{
//Console.WriteLine(e.Message);
}
finally
{
try
{
listener.BeginAccept(
new AsyncCallback(AcceptCallback),
listener);
}
catch
{
//Console.WriteLine(e.Message);
}
}
}
}


+ 15
- 5
shadowsocks-csharp/Controller/PACServer.cs View File

@@ -78,20 +78,17 @@ namespace Shadowsocks.Controller
public void AcceptCallback(IAsyncResult ar)
{
Socket listener = (Socket)ar.AsyncState;
try
{
Socket listener = (Socket)ar.AsyncState;
Socket conn = listener.EndAccept(ar);
listener.BeginAccept(
new AsyncCallback(AcceptCallback),
listener);
byte[] buf = new byte[2048];
object[] state = new object[] {
conn,
buf
};
conn.BeginReceive(buf, 0, 1024, 0,
new AsyncCallback(ReceiveCallback), state);
}
@@ -102,6 +99,19 @@ namespace Shadowsocks.Controller
{
Console.WriteLine(e);
}
finally
{
try
{
listener.BeginAccept(
new AsyncCallback(AcceptCallback),
listener);
}
catch (Exception e)
{
Logging.LogUsefulException(e);
}
}
}
private string GetPACContent()


Loading…
Cancel
Save