package dslab.protocol.dmtp; import dslab.protocol.Message; import dslab.routing.Address; import dslab.routing.Domain; import java.net.InetAddress; import java.net.UnknownHostException; import static dslab.protocol.MessageBuilder.aMessage; /** * Represents a report that is generated on delivery failure as specified in assignment 1, sec. 2.4 ยง 3 */ public class DeliveryFailureReport extends SingleDomainMessage { private static final String MY_IP; static { try { MY_IP = InetAddress.getLocalHost().getHostAddress(); } catch (UnknownHostException e) { throw new RuntimeException(e); } } public DeliveryFailureReport(Exception exception, Message message) { this("An exception occured: " + exception, message); } public DeliveryFailureReport(String cause, Message message) { super(aMessage() .sender(new Address("mailer", new Domain(MY_IP))) .recipient(new Address(message.getSender())) .subject("DELIVERY FAILURE") .data("Error during delivery of " + message + ": " + cause) .build()); } }