fixed checking of sip uri

This commit is contained in:
Juha Heinanen
2018-06-11 10:58:38 +03:00
parent 0aac74ef4a
commit 006affe521

View File

@ -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) 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 { fun checkDomain(domain: String): Boolean {
val parts = domain.split(".") val parts = domain.split(".")
for (p in parts) { for (p in parts) {
@ -101,8 +107,7 @@ object Utils {
fun checkUri(uri: String): Boolean { fun checkUri(uri: String): Boolean {
if (!uri.startsWith("sip:")) return false if (!uri.startsWith("sip:")) return false
val parts = uri.substring(4).split("@") val parts = uri.substring(4).split("@")
return (checkUserID(parts[0]) || checkTelNo(parts[0])) && return checkUriUser(parts[0]) && (checkDomain(parts[1]) || checkIP(parts[1]))
(checkDomain(parts[1]) || checkIP(parts[1]))
} }
fun checkPrintASCII(s: String): Boolean { fun checkPrintASCII(s: String): Boolean {