Software /
code /
prosody
Diff
net/httpclient_listener.lua @ 616:69bc5782b25e
Non-blocking HTTP requests (adding net.http)
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 12 Dec 2008 04:06:15 +0000 |
child | 737:ade262a8da7f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/net/httpclient_listener.lua Fri Dec 12 04:06:15 2008 +0000 @@ -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);