aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--util/httpstream.lua8
1 files changed, 5 insertions, 3 deletions
diff --git a/util/httpstream.lua b/util/httpstream.lua
index bef3350c..fac38d81 100644
--- a/util/httpstream.lua
+++ b/util/httpstream.lua
@@ -7,7 +7,8 @@ coroutine.resume(deadroutine);
module("httpstream")
-local function parser(data, success_cb, parser_type)
+local function parser(success_cb, parser_type)
+ local data = coroutine.yield();
local function readline()
local pos = data:find("\r\n", nil, true);
while not pos do
@@ -94,14 +95,15 @@ end
function new(success_cb, error_cb, parser_type)
local co = coroutine.create(parser);
+ coroutine.resume(co, success_cb, parser_type)
return {
feed = function(self, data)
if not data then
- if parser_type == "client" then coroutine.resume(co, "", success_cb, parser_type); end
+ if parser_type == "client" then coroutine.resume(co, ""); end
co = deadroutine;
return error_cb();
end
- local success, result = coroutine.resume(co, data, success_cb, parser_type);
+ local success, result = coroutine.resume(co, data);
if result then
co = deadroutine;
return error_cb(result);