From 1e479f78eec582caf422dda29c776cdd53674af1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9C=B0=E5=B9=B3=E7=BA=BF?= <22250530@qq.com> Date: Thu, 17 Sep 2015 15:53:12 +0800 Subject: [PATCH] --- .../wentch/redkale/net/socks/SocksRunner.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src-plugin/com/wentch/redkale/net/socks/SocksRunner.java b/src-plugin/com/wentch/redkale/net/socks/SocksRunner.java index a8fbdbf8a..3277fd8b2 100644 --- a/src-plugin/com/wentch/redkale/net/socks/SocksRunner.java +++ b/src-plugin/com/wentch/redkale/net/socks/SocksRunner.java @@ -61,6 +61,10 @@ public class SocksRunner implements Runnable { @Override public void completed(Integer result, Void attachment) { + if (buffer.hasRemaining()) { + channel.write(buffer, null, this); + return; + } connect(); } @@ -102,6 +106,10 @@ public class SocksRunner implements Runnable { @Override public void completed(Integer result, Void attachment) { + if (buffer.hasRemaining()) { + channel.write(buffer, null, this); + return; + } stream(); } @@ -118,6 +126,10 @@ public class SocksRunner implements Runnable { @Override public void completed(Integer result, Void attachment) { + if (buffer.hasRemaining()) { + channel.write(buffer, null, this); + return; + } closeRunner(null); } @@ -171,8 +183,12 @@ public class SocksRunner implements Runnable { @Override public void completed(Integer result0, Void v0) { - rbuffer.clear(); final CompletionHandler self = this; + if (rbuffer.hasRemaining()) { + conn2.write(rbuffer, null, self); + return; + } + rbuffer.clear(); conn1.read(rbuffer, null, new CompletionHandler() { @Override