From 006affe52182c3b13d04625329aee3eca1e870c3 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Mon, 11 Jun 2018 10:58:38 +0300 Subject: [PATCH] fixed checking of sip uri --- app/src/main/kotlin/com/tutpro/baresip/Utils.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/tutpro/baresip/Utils.kt b/app/src/main/kotlin/com/tutpro/baresip/Utils.kt index 8146304b..f4f848be 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/Utils.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/Utils.kt @@ -89,6 +89,12 @@ object Utils { return Regex("^(([0-1]?[0-9]{1,2}\\.)|(2[0-4][0-9]\\.)|(25[0-5]\\.)){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))/$").matches(ip) } + fun checkUriUser(user: String): Boolean { + for (c in user) + if (!(c.isLetterOrDigit() || c in "-_.!~*'()&=+$,;?/")) return false + return true + } + fun checkDomain(domain: String): Boolean { val parts = domain.split(".") for (p in parts) { @@ -101,8 +107,7 @@ object Utils { fun checkUri(uri: String): Boolean { if (!uri.startsWith("sip:")) return false val parts = uri.substring(4).split("@") - return (checkUserID(parts[0]) || checkTelNo(parts[0])) && - (checkDomain(parts[1]) || checkIP(parts[1])) + return checkUriUser(parts[0]) && (checkDomain(parts[1]) || checkIP(parts[1])) } fun checkPrintASCII(s: String): Boolean {