summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Starling <jstarling@star.net.uk>2011-06-23 19:08:28 +0100
committerTom Giordano <tomgiordano83@gmail.com>2011-09-01 01:11:26 +1000
commit3615722acdc16e11e2ebd63c7e21bf42a35c38ee (patch)
treed369adb8131a5de02e15da820750d48022b24a43
parent6fc9f0e1dff06dbd0d3b6e8804826481635b6564 (diff)
downloadandroid_packages_apps_Email-3615722acdc16e11e2ebd63c7e21bf42a35c38ee.tar.gz
android_packages_apps_Email-3615722acdc16e11e2ebd63c7e21bf42a35c38ee.tar.bz2
android_packages_apps_Email-3615722acdc16e11e2ebd63c7e21bf42a35c38ee.zip
SmtpSender: Send EHLO that adheres to RFC2821
Adhere to RFC2821 Sec. 4.1.3 Address Literals should be enclosed by brackets and prefixed with 'IPv6:' if the sender is an IPv6 host
-rw-r--r--src/com/android/email/mail/transport/SmtpSender.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/com/android/email/mail/transport/SmtpSender.java b/src/com/android/email/mail/transport/SmtpSender.java
index 8f72631f8..af6b28273 100644
--- a/src/com/android/email/mail/transport/SmtpSender.java
+++ b/src/com/android/email/mail/transport/SmtpSender.java
@@ -31,7 +31,9 @@ import android.util.Log;
import android.util.Base64;
import java.io.IOException;
+import java.lang.StringBuilder;
import java.net.InetAddress;
+import java.net.Inet6Address;
import java.net.URI;
import java.net.URISyntaxException;
@@ -123,7 +125,18 @@ public class SmtpSender extends Sender {
// Try to get local address in the X.X.X.X format.
InetAddress localAddress = mTransport.getLocalAddress();
if (localAddress != null) {
- localHost = localAddress.getHostAddress();
+ /*
+ * Address Literal
+ * formatted in accordance to RFC2821 Sec. 4.1.3
+ */
+ StringBuilder sb = new StringBuilder();
+ sb.append('[');
+ if (localAddress instanceof Inet6Address) {
+ sb.append("IPv6:");
+ }
+ sb.append(localAddress.getHostAddress());
+ sb.append(']');
+ localHost = sb.toString();
}
String result = executeSimpleCommand("EHLO " + localHost);