From 2f40a05f2631b9c92758720c2e9703cb0c9198d7 Mon Sep 17 00:00:00 2001 From: Christopher Lenz Date: Wed, 30 Apr 2008 00:45:50 +0000 Subject: Update MochiWeb code in trunk to r66. git-svn-id: https://svn.apache.org/repos/asf/incubator/couchdb/trunk@652206 13f79535-47bb-0310-9956-ffa450edef68 --- src/mochiweb/mochiweb_http.erl | 92 +++++++++++++++++++++--------------------- 1 file changed, 46 insertions(+), 46 deletions(-) (limited to 'src/mochiweb/mochiweb_http.erl') diff --git a/src/mochiweb/mochiweb_http.erl b/src/mochiweb/mochiweb_http.erl index 10c51220..7bbe3c81 100644 --- a/src/mochiweb/mochiweb_http.erl +++ b/src/mochiweb/mochiweb_http.erl @@ -11,14 +11,14 @@ -define(IDLE_TIMEOUT, 30000). -define(DEFAULTS, [{name, ?MODULE}, - {port, 8888}]). + {port, 8888}]). set_default({Prop, Value}, PropList) -> case proplists:is_defined(Prop, PropList) of - true -> - PropList; - false -> - [{Prop, Value} | PropList] + true -> + PropList; + false -> + [{Prop, Value} | PropList] end. set_defaults(Defaults, PropList) -> @@ -27,8 +27,8 @@ set_defaults(Defaults, PropList) -> parse_options(Options) -> {loop, HttpLoop} = proplists:lookup(loop, Options), Loop = fun (S) -> - ?MODULE:loop(S, HttpLoop) - end, + ?MODULE:loop(S, HttpLoop) + end, Options1 = [{loop, Loop} | proplists:delete(loop, Options)], set_defaults(?DEFAULTS, Options1). @@ -40,7 +40,7 @@ stop(Name) -> start() -> start([{ip, "127.0.0.1"}, - {loop, {?MODULE, default_body}}]). + {loop, {?MODULE, default_body}}]). start(Options) -> mochiweb_socket_server:start(parse_options(Options)). @@ -69,23 +69,23 @@ default_body(Req, M, "/chunked") when M =:= 'GET'; M =:= 'HEAD' -> Res:write_chunk(""); default_body(Req, M, _Path) when M =:= 'GET'; M =:= 'HEAD' -> Body = io_lib:format("~p~n", [[{parse_qs, Req:parse_qs()}, - {parse_cookie, Req:parse_cookie()}, - Req:dump()]]), + {parse_cookie, Req:parse_cookie()}, + Req:dump()]]), Req:ok({"text/html", - [mochiweb_cookies:cookie("mochiweb_http", "test_cookie")], - frm(Body)}); + [mochiweb_cookies:cookie("mochiweb_http", "test_cookie")], + frm(Body)}); default_body(Req, 'POST', "/multipart") -> Body = io_lib:format("~p~n", [[{parse_qs, Req:parse_qs()}, - {parse_cookie, Req:parse_cookie()}, - {body, Req:recv_body()}, - Req:dump()]]), + {parse_cookie, Req:parse_cookie()}, + {body, Req:recv_body()}, + Req:dump()]]), Req:ok({"text/html", [], frm(Body)}); default_body(Req, 'POST', _Path) -> Body = io_lib:format("~p~n", [[{parse_qs, Req:parse_qs()}, - {parse_cookie, Req:parse_cookie()}, - {parse_post, Req:parse_post()}, - Req:dump()]]), - Req:ok({"text/html", [], frm(Body)}); + {parse_cookie, Req:parse_cookie()}, + {parse_post, Req:parse_post()}, + Req:dump()]]), + Req:ok({"text/html", [], frm(Body)}); default_body(Req, _Method, _Path) -> Req:respond({501, [], []}). @@ -98,35 +98,35 @@ loop(Socket, Body) -> request(Socket, Body) -> case gen_tcp:recv(Socket, 0, ?IDLE_TIMEOUT) of - {ok, {http_request, Method, Path, Version}} -> - headers(Socket, {Method, Path, Version}, [], Body); - {error, {http_error, "\r\n"}} -> - request(Socket, Body); - {error, {http_error, "\n"}} -> - request(Socket, Body); - _Other -> - gen_tcp:close(Socket), - exit(normal) + {ok, {http_request, Method, Path, Version}} -> + headers(Socket, {Method, Path, Version}, [], Body); + {error, {http_error, "\r\n"}} -> + request(Socket, Body); + {error, {http_error, "\n"}} -> + request(Socket, Body); + _Other -> + gen_tcp:close(Socket), + exit(normal) end. headers(Socket, Request, Headers, Body) -> case gen_tcp:recv(Socket, 0, ?IDLE_TIMEOUT) of - {ok, http_eoh} -> - inet:setopts(Socket, [{packet, raw}]), - Req = mochiweb:new_request({Socket, Request, - lists:reverse(Headers)}), - Body(Req), - case Req:should_close() of - true -> - gen_tcp:close(Socket), - exit(normal); - false -> - Req:cleanup(), - ?MODULE:loop(Socket, Body) - end; - {ok, {http_header, _, Name, _, Value}} -> - headers(Socket, Request, [{Name, Value} | Headers], Body); - _Other -> - gen_tcp:close(Socket), - exit(normal) + {ok, http_eoh} -> + inet:setopts(Socket, [{packet, raw}]), + Req = mochiweb:new_request({Socket, Request, + lists:reverse(Headers)}), + Body(Req), + case Req:should_close() of + true -> + gen_tcp:close(Socket), + exit(normal); + false -> + Req:cleanup(), + ?MODULE:loop(Socket, Body) + end; + {ok, {http_header, _, Name, _, Value}} -> + headers(Socket, Request, [{Name, Value} | Headers], Body); + _Other -> + gen_tcp:close(Socket), + exit(normal) end. -- cgit v1.2.3