You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
638 B
Lua
21 lines
638 B
Lua
-- RFC 6454
|
|
|
|
local lpeg = require "lpeg"
|
|
local core = require "lpeg_patterns.core"
|
|
local http_core = require "lpeg_patterns.http.core"
|
|
local uri = require "lpeg_patterns.uri"
|
|
|
|
local C = lpeg.C
|
|
local P = lpeg.P
|
|
|
|
-- discard captures from scheme, host, port and just get whole string
|
|
local serialized_origin = C(uri.scheme * P"://" * uri.host * (P":" * uri.port)^-1/function() end)
|
|
local origin_list = serialized_origin * (core.SP * serialized_origin)^0
|
|
local origin_list_or_null = P"null" + origin_list
|
|
local Origin = http_core.OWS * origin_list_or_null * http_core.OWS
|
|
|
|
return {
|
|
serialized_origin = serialized_origin;
|
|
Origin = Origin;
|
|
}
|