From ad88eec742b85b2b629dfd79f36e6be4646c1001 Mon Sep 17 00:00:00 2001 From: a-pavlov Date: Fri, 26 Aug 2016 22:23:11 +0500 Subject: [PATCH] Fix resume data savig, fix working with incoming and resume data directories, verify trivial file downloading from three sources --- src/main/java/org/jed2k/Conn.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/jed2k/Conn.java b/src/main/java/org/jed2k/Conn.java index 55e1dc5d..aed03df0 100644 --- a/src/main/java/org/jed2k/Conn.java +++ b/src/main/java/org/jed2k/Conn.java @@ -65,17 +65,18 @@ static TransferHandle addTransfer(final Session s, final Hash hash, final long s return null; } - static void saveTransferParameters(final AddTransferParams params) { - File transferFile = new File(params.filepath.toString()); + static void saveTransferParameters(final AddTransferParams params) throws JED2KException { + File transferFile = new File(params.filepath.asString()); File resumeDataFile = new File(resumeDataDirectory.resolve(transferFile.getName()).toString()); try(FileOutputStream stream = new FileOutputStream(resumeDataFile, false); FileChannel channel = stream.getChannel();) { ByteBuffer bb = ByteBuffer.allocate(params.bytesCount()); bb.order(ByteOrder.LITTLE_ENDIAN); params.put(bb); + bb.flip(); while(bb.hasRemaining()) channel.write(bb); } catch(IOException e) { - System.out.println("I/O exception on load " + e); + System.out.println("I/O exception on save resume data " + e); } catch(JED2KException e) { System.out.println("Unable to load search results " + e); } @@ -91,7 +92,7 @@ public static void main(String[] args) throws IOException, JED2KException { incomingDirectory = FileSystems.getDefault().getPath(args[0]); System.out.println("Incoming directory set to: " + incomingDirectory); File incomingFile = incomingDirectory.toFile(); - boolean dirCreated = incomingFile.mkdirs(); + boolean dirCreated = incomingFile.exists() || incomingFile.mkdirs(); if (!dirCreated) { throw new JED2KException(ErrorCode.INCOMING_DIR_INACCESSIBLE); @@ -100,7 +101,7 @@ public static void main(String[] args) throws IOException, JED2KException { resumeDataDirectory = incomingDirectory.resolve(".resumedata"); File resumeFile = resumeDataDirectory.toFile(); - dirCreated = resumeFile.mkdirs(); + dirCreated = resumeFile.exists() || resumeFile.mkdirs(); if (!dirCreated) { throw new JED2KException(ErrorCode.INCOMING_DIR_INACCESSIBLE); @@ -111,8 +112,8 @@ public static void main(String[] args) throws IOException, JED2KException { System.out.println("Conn started"); final Settings startSettings = new Settings(); - startSettings.maxConnectionsPerSecond = 1; - startSettings.sessionConnectionsLimit = 2; + startSettings.maxConnectionsPerSecond = 10; + startSettings.sessionConnectionsLimit = 100; startSettings.compressionVersion = compression?1:0; LinkedList systemPeers = new LinkedList();