From eda462e04152b1d8847a4471e2d185df7bb36a38 Mon Sep 17 00:00:00 2001 From: Andreas Romeyke <andreas.romeyke@slub-dresden.de> Date: Tue, 27 Nov 2018 13:27:58 +0100 Subject: [PATCH] - fixed order of "connect" and parameter settings for sockets - more detailled logging output --- .../metadata_SLUBVirusCheckClamAVPlugin.xml | 2 +- .../plugin/SLUBVirusCheckClamAVPlugin.java | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/PLUGIN-INF/metadata_SLUBVirusCheckClamAVPlugin.xml b/PLUGIN-INF/metadata_SLUBVirusCheckClamAVPlugin.xml index f6cdc3e..9a9891b 100644 --- a/PLUGIN-INF/metadata_SLUBVirusCheckClamAVPlugin.xml +++ b/PLUGIN-INF/metadata_SLUBVirusCheckClamAVPlugin.xml @@ -49,7 +49,7 @@ </fr:x_form> </pl:initParameters> <pl:description>SLUB Virus Check Plugin using installed ClamAV daemon via tcp-sockets</pl:description> - <pl:version>1.6</pl:version> + <pl:version>1.9</pl:version> <pl:materialType>DIGITAL</pl:materialType> <pl:module>Repository</pl:module> <pl:generalType>TASK</pl:generalType> diff --git a/java/org/slub/rosetta/dps/repository/plugin/SLUBVirusCheckClamAVPlugin.java b/java/org/slub/rosetta/dps/repository/plugin/SLUBVirusCheckClamAVPlugin.java index d8f569f..2c04872 100644 --- a/java/org/slub/rosetta/dps/repository/plugin/SLUBVirusCheckClamAVPlugin.java +++ b/java/org/slub/rosetta/dps/repository/plugin/SLUBVirusCheckClamAVPlugin.java @@ -1,5 +1,5 @@ /* -2014 by Andreas Romeyke (SLUB Dresden) +2014-2018 by Andreas Romeyke (SLUB Dresden) The code is partially based on https://code.google.com/p/clamavj/source/browse/trunk/src/main/java/com/philvarner/clamavj/ClamScan.java?r=2 https://github.com/vrtadmin/clamav-devel/blob/master/clamdscan/client.c and @@ -51,7 +51,7 @@ import java.util.Map; */ public class SLUBVirusCheckClamAVPlugin implements VirusCheckPlugin { //private static final ExLogger log = ExLogger.getExLogger(SLUBVirusCheckClamAVPlugin.class); - private static final int DEFAULT_CHUNK_SIZE = 2048; + private static final int DEFAULT_CHUNK_SIZE = 4096; private static final byte[] INSTREAM = "zINSTREAM\0".getBytes(); private static final byte[] VERSION = "zVERSION\0".getBytes(); private static final String RESPONSEOK = "stream: OK"; @@ -178,8 +178,6 @@ public class SLUBVirusCheckClamAVPlugin implements VirusCheckPlugin { private Socket openSocket() throws IOException { // create a socket Socket socket = new Socket(); - //socket.connect( new InetSocketAddress(getHost())); - socket.connect(new InetSocketAddress(getHost(), getPort())); try { socket.setSoTimeout(getTimeOut()); } catch (SocketException e) { @@ -196,6 +194,15 @@ public class SLUBVirusCheckClamAVPlugin implements VirusCheckPlugin { } catch (SocketException e) { log.error( "Could not set ReUseAddress", e); } + //socket.connect( new InetSocketAddress(getHost())); + socket.connect(new InetSocketAddress(getHost(), getPort())); + try { + log.debug( "socket has timeout of: " + socket.getSoTimeout() + " ms"); + log.debug( "socket has keepalive set: " + socket.getKeepAlive()); + log.debug( "socket has reuse adress set: " + socket.getReuseAddress()); + } catch (SocketException e) { + log.warn( "Problems to get socket parameters after connect", e); + } return socket; } @@ -208,7 +215,7 @@ public class SLUBVirusCheckClamAVPlugin implements VirusCheckPlugin { if (dos != null) try { dos.close(); } catch (IOException e) { - log.error("exception closing DOS", e); + log.error("exception closing DataOutputStream", e); //System.out.println("exception closing DOS " + e); } try { @@ -342,4 +349,3 @@ public class SLUBVirusCheckClamAVPlugin implements VirusCheckPlugin { } } - -- GitLab