mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-29 16:15:13 +08:00
🎨 Sync 2026-06-24 20:46:52
This commit is contained in:
1 parent
34879cebcd
commit
251e9e9dd1
22 files changed
+642
-145
No files matched your search
@@ -1605,12 +1605,20 @@ function vps_domain_exclude(domain)
|
||||
end
|
||||
|
||||
function parse_realm_uri(uri)
|
||||
if type(uri) ~= "string" then return nil end
|
||||
uri = trim(uri)
|
||||
if uri == "" then return nil end
|
||||
-- realm[+http]://token@server/realm_id?query
|
||||
local scheme, token, server_url, realm_id, query = trim(uri):match("^(realm%+http|realm)://([^@]+)@([^/]+)/([^?]*)%??(.*)$")
|
||||
if not scheme or not token or not server_url or not realm_id then return nil end
|
||||
local scheme = (uri:match("^realm%+http://") and "realm+http") or (uri:match("^realm://") and "realm")
|
||||
if not scheme then return nil end
|
||||
uri = uri:gsub("^realm%+http://", ""):gsub("^realm://", "")
|
||||
local token, server_url, realm_id, query = uri:match("^([^@]+)@([^/]+)/([^?]*)%??(.*)$")
|
||||
if not token or not server_url or not realm_id then return nil end
|
||||
realm_id = realm_id:gsub("/+$", "")
|
||||
local address, port = server_url:match("^%[?([^%]]+)%]?:?(%d*)$")
|
||||
local address, port = server_url:match("^%[([^%]]+)%]:(%d+)$") --ipv6:port
|
||||
if not address then
|
||||
address, port = server_url:match("^([^:]+):(%d+)$") --ipv4[domain]:port
|
||||
end
|
||||
address = address or server_url:match("^%[([^%]]+)%]$") or server_url
|
||||
port = tonumber(port) or (scheme == "realm+http" and 80 or 443)
|
||||
local realm = {
|
||||
scheme = scheme,
|
||||
@@ -1622,9 +1630,9 @@ function parse_realm_uri(uri)
|
||||
}
|
||||
-- 解析 query 中的 stun=
|
||||
local stun_servers
|
||||
for value in (query or ""):gmatch("[?&]?[Ss][Tt][Uu][Nn]=([^&]+)") do
|
||||
if not stun_servers then stun_servers = {} end
|
||||
stun_servers[#stun_servers + 1] = value
|
||||
for v in (query or ""):gmatch("[Ss][Tt][Uu][Nn]=([^&]+)") do
|
||||
stun_servers = stun_servers or {}
|
||||
stun_servers[#stun_servers + 1] = v
|
||||
end
|
||||
realm.stun_servers = stun_servers
|
||||
return realm
|
||||
|
||||
Reference in new issue
Block a user