diff --git a/src/types.jl b/src/types.jl index ddff82c..d9559a8 100644 --- a/src/types.jl +++ b/src/types.jl @@ -59,19 +59,18 @@ function Request(data::String) """x s = endswith(data, "\r\n") ? data[1:end-2] : data m = match(reg, s) - if isnothing(m) - Request(nothing, nothing, nothing, nothing, nothing, false, data) - else - Request(something(m["protocol"], "gemini"), - m["host"], parse(Int, something(m["port"], "1965")), - # normpath prevents "./path" being different from "path", and - # resolves also "../". The only problem is that "./" is - # transformed to ".", so we filter it. the raw rapresentation - # is still there, if needed - isnothing(m["path"]) ? nothing : filter!(!=("."), split(normpath(m["path"]), "/")), - isnothing(m["query"]) ? nothing : unescape(m["query"]), - true, data) - end + isnothing(m) && + return Request(nothing, nothing, nothing, nothing, nothing, false, data) + + Request(something(m["protocol"], "gemini"), + m["host"], parse(Int, something(m["port"], "1965")), + # normpath prevents "./path" being different from "path", and + # resolves also "../". The only problem is that "./" is + # transformed to ".", so we filter it. the raw rapresentation + # is still there, if needed + isnothing(m["path"]) ? nothing : filter!(!=("."), split(normpath(m["path"]), "/")), + isnothing(m["query"]) ? nothing : unescape(m["query"]), + true, data) end function Request(protocol, host, port, path, query)