Store download-related stuff in the download.
[xudocci.git] / src / main / java / net / pterodactylus / xdcc / core / Core.java
index 8aa31e2..578e86d 100644 (file)
@@ -344,11 +344,23 @@ public class Core extends AbstractIdleService {
         */
        @Subscribe
        public void dccSendReceived(DccSendReceived dccSendReceived) {
+               Optional<Network> network = getNetwork(dccSendReceived.connection());
+               if (!network.isPresent()) {
+                       return;
+               }
+
+               Download download = downloads.get(dccSendReceived.filename());
+               if (download == null) {
+                       /* unknown download, ignore. */
+                       return;
+               }
+
                logger.info(String.format("Starting download of %s.", dccSendReceived.filename()));
                try {
                        File outputFile = new File(temporaryDirectory, dccSendReceived.filename());
                        OutputStream fileOutputStream = new FileOutputStream(outputFile);
                        DccReceiver dccReceiver = new DccReceiver(eventBus, dccSendReceived.inetAddress(), dccSendReceived.port(), dccSendReceived.filename(), dccSendReceived.filesize(), fileOutputStream);
+                       download.filename(outputFile.getPath()).outputStream(fileOutputStream).dccReceiver(dccReceiver);
                        dccReceivers.add(dccReceiver);
                        dccReceiver.start();
                } catch (FileNotFoundException fnfe1) {