diff options
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/serverconnection')
-rw-r--r-- | src/main/java/org/openslx/imagemaster/serverconnection/ConnectionHandler.java | 26 | ||||
-rw-r--r-- | src/main/java/org/openslx/imagemaster/serverconnection/IncomingTransfer.java | 4 |
2 files changed, 18 insertions, 12 deletions
diff --git a/src/main/java/org/openslx/imagemaster/serverconnection/ConnectionHandler.java b/src/main/java/org/openslx/imagemaster/serverconnection/ConnectionHandler.java index 8b6d197..22c4183 100644 --- a/src/main/java/org/openslx/imagemaster/serverconnection/ConnectionHandler.java +++ b/src/main/java/org/openslx/imagemaster/serverconnection/ConnectionHandler.java @@ -33,7 +33,7 @@ import org.openslx.filetransfer.Uploader; import org.openslx.imagemaster.Globals; import org.openslx.imagemaster.db.mappers.DbImage; import org.openslx.thrifthelper.ImagePublishDataEx; -import org.openslx.util.GrowingThreadPoolExecutor; +import org.openslx.util.CascadedThreadPoolExecutor; import org.openslx.util.QuickTimer; import org.openslx.util.QuickTimer.Task; @@ -53,9 +53,9 @@ public class ConnectionHandler implements IncomingEvent private static Map<String, OutgoingTransfer> outgoingTransfers = new ConcurrentHashMap<>(); private static IncomingEvent eventHandler = new ConnectionHandler(); - private final ExecutorService transferPool = new GrowingThreadPoolExecutor( 1, MAX_TRANSFERS * 2, 1, TimeUnit.MINUTES, + private final ExecutorService transferPool = new CascadedThreadPoolExecutor( 1, MAX_TRANSFERS * 2, 1, TimeUnit.MINUTES, new SynchronousQueue<Runnable>(), - new PrioThreadFactory( "TransferPool", Thread.NORM_PRIORITY - 2 ) ); + new PrioThreadFactory( "TransferPool", Thread.NORM_PRIORITY - 2 ), null ); private static final Listener plainListener; private static final Listener sslListener; @@ -74,11 +74,15 @@ public class ConnectionHandler implements IncomingEvent SSLContext sslContext = SSLContext.getInstance( "TLSv1.2" ); KeyManager[] keyManagers = kmf.getKeyManagers(); sslContext.init( keyManagers, null, null ); - ssl = new Listener( eventHandler, sslContext, Globals.getFiletransferPortSsl(), Globals.getFiletransferTimeout() * 1000 ); - ssl.start(); - plain = new Listener( eventHandler, null, Globals.getFiletransferPortPlain(), Globals.getFiletransferTimeout() * 1000 ); - plain.start(); - // TODO: Bail out/retry if failed, getters for ports + if ( Globals.getFiletransferPortSsl() > 0 ) { + ssl = new Listener( eventHandler, sslContext, Globals.getFiletransferPortSsl(), Globals.getFiletransferTimeout() * 1000 ); + ssl.start(); + } + if ( Globals.getFiletransferPortPlain() > 0 ) { + plain = new Listener( eventHandler, null, Globals.getFiletransferPortPlain(), Globals.getFiletransferTimeout() * 1000 ); + plain.start(); + } + // TODO: Bail out/retry if failed } catch ( Exception e ) { LOGGER.error( "Initialization failed.", e ); System.exit( 2 ); @@ -110,14 +114,14 @@ public class ConnectionHandler implements IncomingEvent public static int getSslPort() { - if ( sslListener.isRunning() ) + if ( sslListener != null && sslListener.isRunning() ) return sslListener.getPort(); return 0; } public static int getPlainPort() { - if ( plainListener.isRunning() ) + if ( plainListener != null && plainListener.isRunning() ) return plainListener.getPort(); return 0; } @@ -147,8 +151,6 @@ public class ConnectionHandler implements IncomingEvent } else { absDestination = new File( Globals.getImageDir(), existing.exImagePath ); } - plainListener.start(); - sslListener.start(); try { transfer = new IncomingTransfer( img, blockHashes, absDestination, getPlainPort(), getSslPort() ); } catch ( FileNotFoundException e ) { diff --git a/src/main/java/org/openslx/imagemaster/serverconnection/IncomingTransfer.java b/src/main/java/org/openslx/imagemaster/serverconnection/IncomingTransfer.java index 7b499be..d0bb386 100644 --- a/src/main/java/org/openslx/imagemaster/serverconnection/IncomingTransfer.java +++ b/src/main/java/org/openslx/imagemaster/serverconnection/IncomingTransfer.java @@ -51,6 +51,7 @@ public class IncomingTransfer extends IncomingTransferBase } catch ( SQLException e ) { } } + LOGGER.info( "Incoming transfer started" ); } @Override @@ -69,6 +70,8 @@ public class IncomingTransfer extends IncomingTransferBase @Override protected boolean hasEnoughFreeSpace() { + if ( Globals.isReadOnlyMode() ) + return false; long space = Globals.getImagePath().getUsableSpace(); return space > MIN_FREE_SPACE_BYTES; } @@ -82,6 +85,7 @@ public class IncomingTransfer extends IncomingTransferBase } catch ( SQLException e ) { // Nothing to do } + LOGGER.info( "Incoming transfer ended" ); return true; } |