summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/satellitedaemon/filetransfer
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/satellitedaemon/filetransfer')
-rw-r--r--src/main/java/org/openslx/satellitedaemon/filetransfer/FileDownloadWorker.java6
-rw-r--r--src/main/java/org/openslx/satellitedaemon/filetransfer/ThriftConnection.java22
2 files changed, 17 insertions, 11 deletions
diff --git a/src/main/java/org/openslx/satellitedaemon/filetransfer/FileDownloadWorker.java b/src/main/java/org/openslx/satellitedaemon/filetransfer/FileDownloadWorker.java
index 160e2fc..e8b8b4d 100644
--- a/src/main/java/org/openslx/satellitedaemon/filetransfer/FileDownloadWorker.java
+++ b/src/main/java/org/openslx/satellitedaemon/filetransfer/FileDownloadWorker.java
@@ -11,6 +11,7 @@ import org.openslx.filetransfer.WantRangeCallback;
import org.openslx.imagemaster.thrift.iface.DownloadData;
import org.openslx.satellitedaemon.Globals;
import org.openslx.satellitedaemon.db.DbImage;
+import org.openslx.satellitedaemon.db.DbImage.Status;
public class FileDownloadWorker implements Runnable {
private static Logger log = Logger.getLogger(FileDownloadWorker.class);
@@ -50,8 +51,11 @@ public class FileDownloadWorker implements Runnable {
@Override
public FileRange get() {
// get start of range.
- if (pos >= size)
+ if (pos >= size) {
+ log.debug("Download completed.");
+ image.updateStatus(Status.successfully_decentralized);
return null;
+ }
long startOfRange = pos;
long endOfRange = Math.min(pos + Globals.BLOCKSIZE, image.fileSize);
diff --git a/src/main/java/org/openslx/satellitedaemon/filetransfer/ThriftConnection.java b/src/main/java/org/openslx/satellitedaemon/filetransfer/ThriftConnection.java
index da6c6df..673be05 100644
--- a/src/main/java/org/openslx/satellitedaemon/filetransfer/ThriftConnection.java
+++ b/src/main/java/org/openslx/satellitedaemon/filetransfer/ThriftConnection.java
@@ -19,6 +19,7 @@ import org.apache.thrift.transport.TFramedTransport;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import org.apache.thrift.transport.TTransportException;
+import org.openslx.encryption.AsymEncryptionHandler;
import org.openslx.imagemaster.crcchecker.CrcFile;
import org.openslx.imagemaster.thrift.iface.AuthorizationError;
import org.openslx.imagemaster.thrift.iface.AuthorizationException;
@@ -165,8 +166,9 @@ public class ThriftConnection {
log.error("Client was null!");
return null;
}
- return theClient.getImage(imDat.guid, sSD.sessionId);
+ return theClient.getImage(sSD.sessionId, imDat.guid);
} catch (ImageDataException e) {
+ log.debug("In catch - blog of thrift connection");
if (e.isSetNumber()
&& e.getNumber().equals(ImageDataError.INVALID_DATA)) {
// Data in the db is not valid
@@ -187,10 +189,11 @@ public class ThriftConnection {
if (e.isSetNumber()
&& e.getNumber().equals(
AuthorizationError.NOT_AUTHENTICATED)) {
+ log.error("Not authenticated. SessionID is not valid.", e);
// SessionID is not valid
// TODO: Code for new SSID
} else if (e.getNumber().equals(AuthorizationError.NO_PERMISSION)) {
-
+ log.error("No permission error.", e);
} else {
e.printStackTrace();
}
@@ -263,21 +266,20 @@ public class ThriftConnection {
// }
if (!isAuthenticated) {
log.info("ThriftConnection: Client not yet Authenticated. Trying...");
- String toEncrypt;
if (theClient == null) {
log.debug("The client was null");
return null;
}
try {
- toEncrypt = theClient.startServerAuthentication(Globals
+ ByteBuffer tmpBuffer = theClient.startServerAuthentication(Globals
.getOrganizationName());
+ byte[] toEncrypt = new byte[tmpBuffer.remaining()];
+ tmpBuffer.get(toEncrypt);
log.info("The random String we want to encrypt: " + toEncrypt);
- log.info("Length of the random String : " + toEncrypt.length());
- EncryptWithServerIdPublicKey rse = new EncryptWithServerIdPublicKey(
- Globals.getThriftKeystoreAlias(),
- Globals.getThriftKeystorePassword(),
- Globals.getThriftKeystorePath());
- byte[] byteArray = rse.encryptString(toEncrypt);
+ log.info("Length of the random String : " + toEncrypt.length);
+ AsymEncryptionHandler aeh = new AsymEncryptionHandler(Globals.getPrivateKey());
+
+ byte[] byteArray = aeh.encryptMessage(toEncrypt);
log.info( "Length of the byteArray of the random string after encryption :" + byteArray.length );
ByteBuffer b = ByteBuffer.wrap( byteArray );
log.info( "Length of the byteBuffer after encryption :" + b.remaining() );