diff options
author | Simon Rettberg | 2014-07-25 14:20:00 +0200 |
---|---|---|
committer | Simon Rettberg | 2014-07-25 14:20:00 +0200 |
commit | 036807ab4006bf81188e5324fa53e34b1c7d5ae6 (patch) | |
tree | 77c48ee55cb9973c6a594cd2fde1c212d543c45e /src/main/java/org/openslx/filetransfer/Listener.java | |
parent | [CRCFile] Add checks to prevent null pointer exception (diff) | |
download | master-sync-shared-036807ab4006bf81188e5324fa53e34b1c7d5ae6.tar.gz master-sync-shared-036807ab4006bf81188e5324fa53e34b1c7d5ae6.tar.xz master-sync-shared-036807ab4006bf81188e5324fa53e34b1c7d5ae6.zip |
[Filetransfer] Add more sanity checks and error handling, remodel class structure, introduce common base class for Uploader and Downloader
Diffstat (limited to 'src/main/java/org/openslx/filetransfer/Listener.java')
-rw-r--r-- | src/main/java/org/openslx/filetransfer/Listener.java | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/main/java/org/openslx/filetransfer/Listener.java b/src/main/java/org/openslx/filetransfer/Listener.java index 778804d..04f82f5 100644 --- a/src/main/java/org/openslx/filetransfer/Listener.java +++ b/src/main/java/org/openslx/filetransfer/Listener.java @@ -1,5 +1,7 @@ package org.openslx.filetransfer; +import java.io.IOException; + import javax.net.ssl.SSLContext; import javax.net.ssl.SSLServerSocket; import javax.net.ssl.SSLServerSocketFactory; @@ -42,10 +44,10 @@ public class Listener extends Thread */ private void listen() { + SSLServerSocket welcomeSocket = null; try { SSLServerSocketFactory sslServerSocketFactory = context.getServerSocketFactory(); - SSLServerSocket welcomeSocket = - (SSLServerSocket)sslServerSocketFactory.createServerSocket( this.port ); + welcomeSocket = (SSLServerSocket)sslServerSocketFactory.createServerSocket( this.port ); while ( !isInterrupted() ) { SSLSocket connectionSocket = (SSLSocket)welcomeSocket.accept(); @@ -54,27 +56,33 @@ public class Listener extends Thread byte[] b = new byte[ 1 ]; int length = connectionSocket.getInputStream().read( b ); - log.info( "Length (Listener): " + length ); + log.debug( "Length (Listener): " + length ); if ( b[0] == U ) { - log.info( "recognized U --> starting Downloader" ); + log.debug( "recognized U --> starting Downloader" ); // --> start Downloader(socket). Downloader d = new Downloader( connectionSocket ); incomingEvent.incomingDownloader( d ); } else if ( b[0] == D ) { - log.info( "recognized D --> starting Uploader" ); + log.debug( "recognized D --> starting Uploader" ); // --> start Uploader(socket). Uploader u = new Uploader( connectionSocket ); incomingEvent.incomingUploader( u ); } else { - log.info( "Got invalid option ... close connection" ); + log.debug( "Got invalid option ... close connection" ); connectionSocket.close(); } } } catch ( Exception e ) { e.printStackTrace(); // same as writing to System.err.println(e.toString). + } finally { + try { + welcomeSocket.close(); + } catch (IOException e) { + // Nothing we can do + } } } |