Software /
code /
prosody
Changeset
9611:2700317f93e4 0.11
net.http: Manually merge settings (fixes #1231)
Metatable table indexing is done raw, so metatables can't be chained
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 09 Nov 2018 15:59:32 +0100 |
parents | 9609:1dfcea523200 |
children | 9612:abf9bacf77d4 |
files | net/http.lua |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/net/http.lua Wed Nov 07 20:30:21 2018 +0100 +++ b/net/http.lua Fri Nov 09 15:59:32 2018 +0100 @@ -24,7 +24,6 @@ tonumber, tostring, debug.traceback; local xpcall = require "util.xpcall".xpcall; local error = error -local setmetatable = setmetatable; local log = require "util.logger".init("http"); @@ -273,7 +272,12 @@ options = options; request = request; new = options and function (new_options) - return new(setmetatable(new_options, { __index = options })); + local final_options = {}; + for k, v in pairs(options) do final_options[k] = v; end + if new_options then + for k, v in pairs(new_options) do final_options[k] = v; end + end + return new(final_options); end or new; events = events.new(); };