From 2d9b157b78974ed85a5b7bbdb74a2795c52059c8 Mon Sep 17 00:00:00 2001 From: Tobias Eidelpes Date: Thu, 19 Nov 2020 12:15:20 +0100 Subject: [PATCH] Fix bug where msg would be overwritten on sendErrorMail() --- src/main/java/dslab/mailbox/DMTPConnection.java | 3 ++- .../java/dslab/transfer/TransferServer.java | 17 +++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/main/java/dslab/mailbox/DMTPConnection.java b/src/main/java/dslab/mailbox/DMTPConnection.java index 526814d..3c6615c 100644 --- a/src/main/java/dslab/mailbox/DMTPConnection.java +++ b/src/main/java/dslab/mailbox/DMTPConnection.java @@ -88,7 +88,8 @@ public class DMTPConnection implements Runnable { count++; } } - out.println("ok " + count); + if (count != 0) + out.println("ok " + count); } catch (MalformedInputException e) { out.println(e.getMessage()); } diff --git a/src/main/java/dslab/transfer/TransferServer.java b/src/main/java/dslab/transfer/TransferServer.java index e726a4a..9ad5026 100644 --- a/src/main/java/dslab/transfer/TransferServer.java +++ b/src/main/java/dslab/transfer/TransferServer.java @@ -219,18 +219,19 @@ public class TransferServer implements ITransferServer, Runnable { private void sendErrorMail(Message msg, String error) { logger.info("Trying to send error mail to address " + msg.getFrom()); + Message errorMessage = msg; int port; try { - port = domainLookup(msg.getFrom()); + port = domainLookup(errorMessage.getFrom()); } catch (UnknownDomain e) { logger.severe("Sending error mail failed because sender domain is unknown"); return; } ArrayList newTo = new ArrayList<>(); - newTo.add(msg.getFrom()); - msg.setTo(newTo); + newTo.add(errorMessage.getFrom()); + errorMessage.setTo(newTo); try { - msg.setFrom(new Email("mailer@127.0.0.1")); + errorMessage.setFrom(new Email("mailer@127.0.0.1")); } catch (MalformedInputException e) { logger.severe("The server's E-Mail address is wrong. This should not be happening!"); e.printStackTrace(); @@ -243,13 +244,13 @@ public class TransferServer implements ITransferServer, Runnable { socketIn.readLine(); socketOut.println("begin"); socketIn.readLine(); - socketOut.println("subject " + msg.getSubject()); + socketOut.println("subject " + errorMessage.getSubject()); socketIn.readLine(); socketOut.println("data " + error); socketIn.readLine(); - socketOut.println("to " + msg.printTo()); + socketOut.println("to " + errorMessage.printTo()); socketIn.readLine(); - socketOut.println("from " + msg.getFrom().toString()); + socketOut.println("from " + errorMessage.getFrom().toString()); socketIn.readLine(); socketOut.println("send"); String result = socketIn.readLine(); @@ -258,7 +259,7 @@ public class TransferServer implements ITransferServer, Runnable { socketIn.close(); socketOut.close(); socket.close(); - sendMonitoringMessage(msg); + sendMonitoringMessage(errorMessage); } catch (IOException e) { logger.severe("Sending error mail failed because socket communication failed"); }