tighten if-else and add empty skylink protection

This commit is contained in:
Karol Wypchlo 2020-11-04 12:04:24 +01:00
parent 9b09f9ba5c
commit 48b1f0d067
1 changed files with 6 additions and 3 deletions

View File

@ -159,9 +159,7 @@ server {
if skylink == nil then if skylink == nil then
skylink, skylink_rest = string.match(hnsres_json.skylink, "/?([^/?]+)(.*)") skylink, skylink_rest = string.match(hnsres_json.skylink, "/?([^/?]+)(.*)")
end end
end elseif hnsres_json.registry then
if hnsres_json.registry then
local publickey = hnsres_json.registry.publickey local publickey = hnsres_json.registry.publickey
local datakey = hnsres_json.registry.datakey local datakey = hnsres_json.registry.datakey
@ -183,6 +181,11 @@ server {
skylink = data skylink = data
end end
-- fail with a generic 404 if skylink has not been extracted from a valid /hnsres response for some reason
if not skylink then
ngx.exit(ngx.HTTP_NOT_FOUND)
end
ngx.var.skylink = skylink ngx.var.skylink = skylink
if request_uri_rest == "/" and skylink_rest ~= "" and skylink_rest ~= "/" then if request_uri_rest == "/" and skylink_rest ~= "" and skylink_rest ~= "/" then
ngx.var.rest = skylink_rest ngx.var.rest = skylink_rest