From 2100f7a8051dc4902dea895a492697e0bc0f47d2 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sat, 17 Jun 2017 14:29:46 +0300 Subject: [PATCH] =?UTF-8?q?Zond:fix:=20=D0=B3=D1=80=D0=B0=D0=BC=D0=BE?= =?UTF-8?q?=D0=BD=D1=82=D0=BD=D0=BE=D0=B5=20=D0=BE=D1=82=D0=BA=D0=BB=D1=8E?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=82=20ASys?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zond/src/main/java/asys/zond/ZondCommandHandler.java | 1 + zond/src/main/java/asys/zond/proxy/Client.java | 7 +++++-- zond/src/main/java/asys/zond/proxy/Connector.java | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/zond/src/main/java/asys/zond/ZondCommandHandler.java b/zond/src/main/java/asys/zond/ZondCommandHandler.java index bc13f4b..481d1ef 100644 --- a/zond/src/main/java/asys/zond/ZondCommandHandler.java +++ b/zond/src/main/java/asys/zond/ZondCommandHandler.java @@ -64,6 +64,7 @@ public class ZondCommandHandler implements CommandHandler { } else if (line.equalsIgnoreCase("connect")) { Connector.getInstance().startReconnect(); } else if (line.equalsIgnoreCase("disconnect")) { + Shell.getInstance().getOutput().println("Disconnect"); Connector.getInstance().shutdown(); } else if (line.equalsIgnoreCase("reload")) { Shell.getInstance().getOutput().println("Reload config"); diff --git a/zond/src/main/java/asys/zond/proxy/Client.java b/zond/src/main/java/asys/zond/proxy/Client.java index 5500af6..d9c4e61 100644 --- a/zond/src/main/java/asys/zond/proxy/Client.java +++ b/zond/src/main/java/asys/zond/proxy/Client.java @@ -33,8 +33,11 @@ public class Client { } public void disconnect() { - channelFuture.channel().close(); - group.shutdownGracefully(); + if (isConnected()) { + channelFuture.channel().close(); + channelFuture = null; + group.shutdownGracefully(); + } } public boolean isConnected() { diff --git a/zond/src/main/java/asys/zond/proxy/Connector.java b/zond/src/main/java/asys/zond/proxy/Connector.java index 496e057..ef980a8 100644 --- a/zond/src/main/java/asys/zond/proxy/Connector.java +++ b/zond/src/main/java/asys/zond/proxy/Connector.java @@ -23,7 +23,8 @@ public class Connector { } public void startReconnect() { - if (connectTicker != null && connectTicker.isActive()) return; + if ((connectTicker != null && connectTicker.isActive()) || + (client != null && client.isConnected())) return; client = new Client(); connectTicker = new TaskTicker().setStepTimeMs(5000L); connectTicker.setTask(() -> {