Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/humla.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenry Heikkinen <henry.heikkinen@ims.fi>2015-07-30 13:25:20 +0300
committerHenry Heikkinen <henry.heikkinen@ims.fi>2015-07-30 13:40:06 +0300
commitd77952a61609c9f078bd7c9e2c100749891f0b28 (patch)
tree7bbae3dacafa69e6c546f05c4f9aa303253d46e4
parent9549936c1eb4164cc3f52127d010eae7bfcf1cb4 (diff)
Fix Mumble URL parsing
URLs including password but no username were parsed incorrectly. The Mumble Wiki's specification is somewhat confusing for this case. The General URL specification implies an username is needed to use a password but later on page it is clear that password can be used without an accompanying username. The desktop client also supports these URLs.
-rw-r--r--src/androidTest/java/com/morlunk/jumble/test/URLParserTest.java12
-rw-r--r--src/main/java/com/morlunk/jumble/util/MumbleURLParser.java2
2 files changed, 13 insertions, 1 deletions
diff --git a/src/androidTest/java/com/morlunk/jumble/test/URLParserTest.java b/src/androidTest/java/com/morlunk/jumble/test/URLParserTest.java
index 0c8788a..fa2720b 100644
--- a/src/androidTest/java/com/morlunk/jumble/test/URLParserTest.java
+++ b/src/androidTest/java/com/morlunk/jumble/test/URLParserTest.java
@@ -78,6 +78,18 @@ public class URLParserTest extends TestCase {
}
}
+ public void testURLWithPassword() {
+ String url = "mumble://:mypassword@server.com/";
+ try {
+ Server server = MumbleURLParser.parseURL(url);
+ assertEquals(server.getHost(), "server.com");
+ assertEquals(server.getPassword(), "mypassword");
+ assertEquals(server.getPort(), Constants.DEFAULT_PORT);
+ } catch (MalformedURLException e) {
+ fail("Failed to parse URL.");
+ }
+ }
+
public void testInvalidScheme() {
String url = "grumble://server.com/";
try {
diff --git a/src/main/java/com/morlunk/jumble/util/MumbleURLParser.java b/src/main/java/com/morlunk/jumble/util/MumbleURLParser.java
index 29c4109..5da4117 100644
--- a/src/main/java/com/morlunk/jumble/util/MumbleURLParser.java
+++ b/src/main/java/com/morlunk/jumble/util/MumbleURLParser.java
@@ -31,7 +31,7 @@ import java.util.regex.Pattern;
*/
public class MumbleURLParser {
- private static final Pattern URL_PATTERN = Pattern.compile("mumble://((.+?)(:(.+?))?@)?(.+?)(:([0-9]+?))?/");
+ private static final Pattern URL_PATTERN = Pattern.compile("mumble://(([^:]+)?(:(.+?))?@)?(.+?)(:([0-9]+?))?/");
/**
* Parses the passed Mumble URL into a Server object.