Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49dfdd66 authored by Adam Vartanian's avatar Adam Vartanian Committed by android-build-merger
Browse files

Adjust Uri host parsing to use last instead of first @. am: cd6228dd am:...

Adjust Uri host parsing to use last instead of first @. am: cd6228dd am: 6a9c7c48 am: 4158c9fb am: eee67738 am: 49e5fca3 am: 240b55de am: 3ac5dabc
am: f61daaa3

Change-Id: Iee679fb3a115f6c1a2683905e5b392ec665aee33
parents b353fbcb f61daaa3
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1065,7 +1065,7 @@ public abstract class Uri implements Parcelable, Comparable<Uri> {
                return null;
            }

            int end = authority.indexOf('@');
            int end = authority.lastIndexOf('@');
            return end == NOT_FOUND ? null : authority.substring(0, end);
        }

@@ -1089,7 +1089,7 @@ public abstract class Uri implements Parcelable, Comparable<Uri> {
            }

            // Parse out user info and then port.
            int userInfoSeparator = authority.indexOf('@');
            int userInfoSeparator = authority.lastIndexOf('@');
            int portSeparator = authority.indexOf(':', userInfoSeparator);

            String encodedHost = portSeparator == NOT_FOUND
@@ -1115,7 +1115,7 @@ public abstract class Uri implements Parcelable, Comparable<Uri> {

            // Make sure we look for the port separtor *after* the user info
            // separator. We have URLs with a ':' in the user info.
            int userInfoSeparator = authority.indexOf('@');
            int userInfoSeparator = authority.lastIndexOf('@');
            int portSeparator = authority.indexOf(':', userInfoSeparator);

            if (portSeparator == NOT_FOUND) {
+5 −0
Original line number Diff line number Diff line
@@ -187,6 +187,11 @@ public class UriTest extends TestCase {
        uri = Uri.parse("http://localhost");
        assertEquals("localhost", uri.getHost());
        assertEquals(-1, uri.getPort());

        uri = Uri.parse("http://a:a@example.com:a@example2.com/path");
        assertEquals("a:a@example.com:a@example2.com", uri.getAuthority());
        assertEquals("example2.com", uri.getHost());
        assertEquals(-1, uri.getPort());
    }

    @SmallTest