diff options
author | Björn Hagemeister | 2014-07-02 14:04:24 +0200 |
---|---|---|
committer | Björn Hagemeister | 2014-07-02 14:04:24 +0200 |
commit | a3e249d10e34cb6f56df6b9a4a33927dc75a13f6 (patch) | |
tree | 77db0ceefcc0cf85e2e8d9fb83a5dd69e413e14f /src/main/java/org/openslx/filetransfer | |
parent | Also pass to uploader context as argument. Added ClassTest file, which is sam... (diff) | |
download | master-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')
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; } } |