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();
 	};