summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/serverconnection/ConnectionHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/serverconnection/ConnectionHandler.java')
-rw-r--r--src/main/java/org/openslx/imagemaster/serverconnection/ConnectionHandler.java44
1 files changed, 24 insertions, 20 deletions
diff --git a/src/main/java/org/openslx/imagemaster/serverconnection/ConnectionHandler.java b/src/main/java/org/openslx/imagemaster/serverconnection/ConnectionHandler.java
index 439087a..7a3bf12 100644
--- a/src/main/java/org/openslx/imagemaster/serverconnection/ConnectionHandler.java
+++ b/src/main/java/org/openslx/imagemaster/serverconnection/ConnectionHandler.java
@@ -10,6 +10,7 @@ import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -115,28 +116,31 @@ public class ConnectionHandler implements IncomingEvent
public void incomingUploader( Uploader uploader ) throws IOException
{
// try to read meta data
- while ( uploader.readMetaData() ) {
- String token = uploader.getToken();
- log.debug( "Got token :'" + token + "'" );
- // check token to identify the client
- if ( !connections.containsKey( token ) ) {
- uploader.sendErrorCode( "Token not accepted." );
- uploader.close();
- return;
- }
-
- // check if he was a downloading client
- if ( connections.get( token ).type == Connection.UPLOADING ) {
- uploader.sendErrorCode( "You can not download, if you are uploading." );
- uploader.close();
- return;
- }
- // TODO: check which range needs to be sent and send this range
- long length = ( new File( connections.get( token ).filepath ) ).length();
+ if ( !uploader.readMetaData() ) return;
+ String token = uploader.getToken();
+ log.debug( "Got token :'" + token + "'" );
+ // check token to identify the client
+ if ( !connections.containsKey( token ) ) {
+ uploader.sendErrorCode( "Token not accepted." );
+ uploader.close();
+ return;
+ }
- uploader.sendRange( 0, (int)length );
- uploader.sendFile( connections.get( token ).filepath );
+ // check if he was a downloading client
+ if ( connections.get( token ).type == Connection.UPLOADING ) {
+ uploader.sendErrorCode( "You can not download, if you are uploading." );
+ uploader.close();
+ return;
}
+
+ List<Integer> list = connections.get( token ).client.getLastRequestedBlocks( token );
+ // TODO: check which range needs to be sent and send this range
+ // logik von michael
+
+ long length = ( new File( connections.get( token ).filepath ) ).length();
+
+ uploader.sendRange( 0, (int)length );
+ uploader.sendFile( connections.get( token ).filepath );
uploader.close();
}