Automated merge with http://waqas.ath.cx:8000/
[prosody.git] / net / httpserver_listener.lua
1
2
3 local connlisteners_register = require "net.connlisteners".register;
4 local new_request = require "net.httpserver".new_request;
5 local request_reader = require "net.httpserver".request_reader;
6
7 local requests = {}; -- Open requests
8
9 local httpserver = { default_port = 80, default_mode = "*a" };
10
11 function httpserver.listener(conn, data)
12         local request = requests[conn];
13
14         if not request then
15                 request = new_request(conn);
16                 requests[conn] = request;
17         end
18
19         if data then
20                 request_reader(request, data);
21         end
22 end
23
24 function httpserver.disconnect(conn, err)
25         local request = requests[conn];
26         if request and not request.destroyed then
27                 request.conn = nil;
28                 request_reader(request, nil);
29         end
30         requests[conn] = nil;
31 end
32
33 connlisteners_register("httpserver", httpserver);