summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/filetransfer
diff options
context:
space:
mode:
authorBjörn Hagemeister2014-07-02 14:04:24 +0200
committerBjörn Hagemeister2014-07-02 14:04:24 +0200
commita3e249d10e34cb6f56df6b9a4a33927dc75a13f6 (patch)
tree77db0ceefcc0cf85e2e8d9fb83a5dd69e413e14f /src/main/java/org/openslx/filetransfer
parentAlso pass to uploader context as argument. Added ClassTest file, which is sam... (diff)
downloadmaster-sync-shared-a3e249d10e34cb6f56df6b9a4a33927dc75a13f6.tar.gz
master-sync-shared-a3e249d10e34cb6f56df6b9a4a33927dc75a13f6.tar.xz
master-sync-shared-a3e249d10e34cb6f56df6b9a4a33927dc75a13f6.zip
Adding getter and setter for outputFilename in Downloader.
Plus, some security checks.
Diffstat (limited to 'src/main/java/org/openslx/filetransfer')
-rw-r--r--src/main/java/org/openslx/filetransfer/ClassTest.java11
-rw-r--r--src/main/java/org/openslx/filetransfer/Downloader.java29
-rw-r--r--src/main/java/org/openslx/filetransfer/Listener.java3
-rw-r--r--src/main/java/org/openslx/filetransfer/Uploader.java25
4 files changed, 54 insertions, 14 deletions
diff --git a/src/main/java/org/openslx/filetransfer/ClassTest.java b/src/main/java/org/openslx/filetransfer/ClassTest.java
index 6d9f4e9..52eeb3b 100644
--- a/src/main/java/org/openslx/filetransfer/ClassTest.java
+++ b/src/main/java/org/openslx/filetransfer/ClassTest.java
@@ -20,6 +20,7 @@ package org.openslx.filetransfer;
import java.io.File;
import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.security.KeyStore;
@@ -117,7 +118,14 @@ public class ClassTest {
// Implementing IncomingEvent for testing case.
class Test implements IncomingEvent {
public void incomingUploader(Uploader uploader) throws IOException {
- RandomAccessFile file = new RandomAccessFile(new File("test.txt"), "rw");
+ RandomAccessFile file;
+ try {
+ file = new RandomAccessFile(new File("test.txt"), "r");
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ return;
+ }
+
long length = file.length();
file.close();
@@ -133,6 +141,7 @@ class Test implements IncomingEvent {
}
public void incomingDownloader(Downloader downloader) throws IOException {
+ downloader.setOutputFilename("output.txt");
while (downloader.readMetaData())
downloader.readBinary();
}
diff --git a/src/main/java/org/openslx/filetransfer/Downloader.java b/src/main/java/org/openslx/filetransfer/Downloader.java
index 450aad0..176b874 100644
--- a/src/main/java/org/openslx/filetransfer/Downloader.java
+++ b/src/main/java/org/openslx/filetransfer/Downloader.java
@@ -27,7 +27,7 @@ public class Downloader {
private DataInputStream dataFromServer;
private String TOKEN = null;
private String RANGE = null;
- private String outputFilename;
+ private String outputFilename = null;
/***********************************************************************//**
* Constructor for satellite downloader.
@@ -40,9 +40,7 @@ public class Downloader {
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
- public Downloader(String ip, int port, String filename, SSLContext context) throws IOException, KeyStoreException, NoSuchAlgorithmException, CertificateException, KeyManagementException {
- outputFilename = filename;
-
+ public Downloader(String ip, int port, SSLContext context) throws IOException, KeyStoreException, NoSuchAlgorithmException, CertificateException, KeyManagementException {
/*
char[] passphrase = "test123".toCharArray();
KeyStore keystore = KeyStore.getInstance("JKS");
@@ -73,14 +71,33 @@ public class Downloader {
* @param socket
* @throws IOException
*/
- public Downloader(SSLSocket socket, String filename) throws IOException {
- outputFilename = filename;
+ public Downloader(SSLSocket socket) throws IOException {
satelliteSocket = socket;
dataToServer = new DataOutputStream(satelliteSocket.getOutputStream());
dataFromServer = new DataInputStream(satelliteSocket.getInputStream());
}
/***********************************************************************//**
+ * Method for setting outputFilename.
+ * @param filename
+ */
+ public void setOutputFilename(String filename)
+ {
+ outputFilename = filename;
+ }
+
+ /***********************************************************************//**
+ * Method for getting outputFilename.
+ * @return Return outputFilename or null.
+ */
+ public String getOutputFilename()
+ {
+ if (outputFilename != null)
+ return outputFilename;
+ return null;
+ }
+
+ /***********************************************************************//**
* Method for sending token for identification from satellite to master.
* @param t
* @throws IOException
diff --git a/src/main/java/org/openslx/filetransfer/Listener.java b/src/main/java/org/openslx/filetransfer/Listener.java
index 577bde7..5d0b1f5 100644
--- a/src/main/java/org/openslx/filetransfer/Listener.java
+++ b/src/main/java/org/openslx/filetransfer/Listener.java
@@ -66,8 +66,7 @@ public class Listener {
if (b[0] == 85) {
System.out.println("U erkannt --> Downloader starten");
// --> start Downloader(socket).
- String filename = "output.txt";
- Downloader d = new Downloader(connectionSocket, filename);
+ Downloader d = new Downloader(connectionSocket);
incomingEvent.incomingDownloader(d);
}
else if (b[0] == 68) {
diff --git a/src/main/java/org/openslx/filetransfer/Uploader.java b/src/main/java/org/openslx/filetransfer/Uploader.java
index d87cfbb..6fbb656 100644
--- a/src/main/java/org/openslx/filetransfer/Uploader.java
+++ b/src/main/java/org/openslx/filetransfer/Uploader.java
@@ -4,6 +4,7 @@ import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.net.UnknownHostException;
@@ -197,6 +198,7 @@ public class Uploader {
}
}
} catch (IOException e) {
+ e.printStackTrace();
return false;
}
return true;
@@ -207,11 +209,18 @@ public class Uploader {
* @param filename
* @throws IOException
*/
- public void sendFile(String filename) throws IOException {
- RandomAccessFile file = new RandomAccessFile(new File(filename), "r");
+ public Boolean sendFile(String filename) throws IOException {
+ RandomAccessFile file;
+ try {
+ file = new RandomAccessFile(new File(filename), "r");
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ return false;
+ }
+
if (getStartOfRange() == -1) {
file.close();
- return;
+ return false;
}
file.seek(getStartOfRange());
@@ -225,11 +234,17 @@ public class Uploader {
System.out.println("Error occured in Uploader.sendFile(),"
+ " while reading from File to send.");
file.close();
- return;
+ return false;
}
hasRead += ret;
}
file.close();
- dataToServer.write(data, 0, length);
+ try {
+ dataToServer.write(data, 0, length);
+ } catch (IOException e) {
+ e.printStackTrace();
+ return false;
+ }
+ return true;
}
}