Przeglądaj źródła

Corrected bug in connection retry.

didfet 10 lat temu
rodzic
commit
cb36f31dbd

+ 10 - 0
src/main/java/info/fetter/logstashforwarder/Forwarder.java

@@ -100,10 +100,20 @@ public class Forwarder {
 	private static void connectToServer() {
 		int randomServerIndex = 0;
 		List<String> serverList = configManager.getConfig().getNetwork().getServers();
+		if(adapter != null) {
+			try {
+				adapter.close();
+			} catch(AdapterException e) {
+				logger.error("Error while closing connection to " + adapter.getServer() + ":" + adapter.getPort());
+			} finally {
+				adapter = null;
+			}
+		}
 		while(adapter == null) {
 			try {
 				randomServerIndex = random.nextInt(serverList.size());
 				String[] serverAndPort = serverList.get(randomServerIndex).split(":");
+				logger.info("Trying to connect to " + serverList.get(randomServerIndex));
 				adapter = new LumberjackClient(configManager.getConfig().getNetwork().getSslCA(),serverAndPort[0],Integer.parseInt(serverAndPort[1]));
 				reader.setAdapter(adapter);
 			} catch(Exception ex) {

+ 2 - 0
src/main/java/info/fetter/logstashforwarder/ProtocolAdapter.java

@@ -24,4 +24,6 @@ import java.util.List;
 public interface ProtocolAdapter {
 	public int sendEvents(List<Event> eventList) throws AdapterException;
 	public void close() throws AdapterException;
+	public String getServer();
+	public int getPort();
 }

+ 9 - 0
src/main/java/info/fetter/logstashforwarder/protocol/LumberjackClient.java

@@ -204,4 +204,13 @@ public class LumberjackClient implements ProtocolAdapter {
 		}
 		logger.info("Connection to " + server + ":" + port + " closed");
 	}
+
+	public String getServer() {
+		return server;
+	}
+
+	public int getPort() {
+		return port;
+	}
+	
 }

+ 10 - 0
src/test/java/info/fetter/logstashforwarder/MockProtocolAdapter.java

@@ -38,4 +38,14 @@ public class MockProtocolAdapter implements ProtocolAdapter {
 		// not implemented
 	}
 
+	public String getServer() {
+		// TODO Auto-generated method stub
+		return "";
+	}
+
+	public int getPort() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
 }