diff options
Diffstat (limited to 'net/httpclient_listener.lua')
-rw-r--r-- | net/httpclient_listener.lua | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/net/httpclient_listener.lua b/net/httpclient_listener.lua new file mode 100644 index 00000000..1948f278 --- /dev/null +++ b/net/httpclient_listener.lua @@ -0,0 +1,36 @@ + +local connlisteners_register = require "net.connlisteners".register; + + +local requests = {}; -- Open requests +local buffers = {}; -- Buffers of partial lines + +local httpclient = { default_port = 80, default_mode = "*a" }; + +function httpclient.listener(conn, data) + local request = requests[conn]; + + if not request then + print("NO REQUEST!! for "..tostring(conn)); + return; + end + + if data and request.reader then + request:reader(data); + end +end + +function httpclient.disconnect(conn, err) + local request = requests[conn]; + if request then + request:reader(nil); + end + --requests[conn] = nil; +end + +function httpclient.register_request(conn, req) + print("Registering a request for "..tostring(conn)); + requests[conn] = req; +end + +connlisteners_register("httpclient", httpclient); |