diff options
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java')
-rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java index 656a515b..b1466b5c 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java @@ -236,7 +236,7 @@ public class FileServer implements IncomingEvent { throw new TTransferRejectedException(errorMessage); } String key = UUID.randomUUID().toString(); - OutgoingDataTransfer transfer = new OutgoingDataTransfer(key, srcFile, getPlainPort(), getSslPort()); + OutgoingDataTransfer transfer = new OutgoingDataTransfer(key, srcFile, getPlainPort(), getSslPort(), localImageData.imageVersionId); downloads.put(key, transfer); return transfer; } @@ -244,6 +244,28 @@ public class FileServer implements IncomingEvent { public Status getStatus() { return new Status(); } + + /** + * Check whether the given imageVersionId refers to an active transfer. + */ + public boolean isActiveTransfer(String baseId, String versionId) { + long now = System.currentTimeMillis(); + if (versionId != null) { + for (OutgoingDataTransfer odt : downloads.values()) { + if (versionId != null && versionId.equals(odt.getVersionId()) && !odt.isComplete(now) && odt.isActive()) + return true; + } + } + for (IncomingDataTransfer idt : uploads.values()) { + if (idt.isComplete(now) || !idt.isActive()) + continue; + if (versionId != null && versionId.equals(idt.getVersionId())) + return true; + if (baseId != null && baseId.equals(idt.getBaseId())) + return true; + } + return false; + } class Status { public final int activeUploads; |