From 6ee9c8fc776c565fdb855b698379d0665bbe47e3 Mon Sep 17 00:00:00 2001 From: Alexey Melnichuk Date: Mon, 8 Sep 2014 11:18:30 +0500 Subject: [PATCH] Add. Lua-cURL multi iterator returns also `response` row. ```Lua for d, t in m:perform() do if t == 'response' and d == 200 then ... end end ``` --- src/lua/cURL.lua | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/lua/cURL.lua b/src/lua/cURL.lua index 34f3bda..7a5a25a 100644 --- a/src/lua/cURL.lua +++ b/src/lua/cURL.lua @@ -221,15 +221,19 @@ local remove_handle = wrap_function("remove_handle") local function make_iterator(self) local curl = require "lcurl.safe" - local buffers = {_ = {}} do + local buffers = {resp = {}, _ = {}} do function buffers:append(e, ...) - if not self._[e] then - self._[e] = { - -- {"response", e:getinfo_response_code()} - } - end + local resp = assert(e:getinfo_response_code()) + if not self._[e] then self._[e] = {} end + local b = self._[e] + + if self.resp[e] ~= resp then + b[#b + 1] = {"response", resp} + self.resp[e] = resp + end + b[#b + 1] = {...} end