summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/serverconnection
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/serverconnection')
-rw-r--r--src/main/java/org/openslx/imagemaster/serverconnection/ConnectionHandler.java26
-rw-r--r--src/main/java/org/openslx/imagemaster/serverconnection/IncomingTransfer.java4
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;
}