Adjust Uri host parsing to use last instead of first @. am: cd6228dd37 am: 6a9c7c4814 am: 4158c9fbf3 am: eee677386e am: 49e5fca362 am: 240b55de2c am: 3ac5dabc21 am: f61daaa333 am: 49dfdd66cc am: eb4598afba
am: a2149abe3a
Change-Id: I48d611e91318a8f85f12fcff5fc00de8b1f834c9
This commit is contained in:
@@ -1066,7 +1066,7 @@ public abstract class Uri implements Parcelable, Comparable<Uri> {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
int end = authority.indexOf('@');
|
int end = authority.lastIndexOf('@');
|
||||||
return end == NOT_FOUND ? null : authority.substring(0, end);
|
return end == NOT_FOUND ? null : authority.substring(0, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1090,7 +1090,7 @@ public abstract class Uri implements Parcelable, Comparable<Uri> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Parse out user info and then port.
|
// Parse out user info and then port.
|
||||||
int userInfoSeparator = authority.indexOf('@');
|
int userInfoSeparator = authority.lastIndexOf('@');
|
||||||
int portSeparator = authority.indexOf(':', userInfoSeparator);
|
int portSeparator = authority.indexOf(':', userInfoSeparator);
|
||||||
|
|
||||||
String encodedHost = portSeparator == NOT_FOUND
|
String encodedHost = portSeparator == NOT_FOUND
|
||||||
@@ -1116,7 +1116,7 @@ public abstract class Uri implements Parcelable, Comparable<Uri> {
|
|||||||
|
|
||||||
// Make sure we look for the port separtor *after* the user info
|
// Make sure we look for the port separtor *after* the user info
|
||||||
// separator. We have URLs with a ':' in 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);
|
int portSeparator = authority.indexOf(':', userInfoSeparator);
|
||||||
|
|
||||||
if (portSeparator == NOT_FOUND) {
|
if (portSeparator == NOT_FOUND) {
|
||||||
|
|||||||
@@ -187,6 +187,11 @@ public class UriTest extends TestCase {
|
|||||||
uri = Uri.parse("http://localhost");
|
uri = Uri.parse("http://localhost");
|
||||||
assertEquals("localhost", uri.getHost());
|
assertEquals("localhost", uri.getHost());
|
||||||
assertEquals(-1, uri.getPort());
|
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
|
@SmallTest
|
||||||
|
|||||||
Reference in New Issue
Block a user