From 919fa638ee24250a9f1def27b82f9f7648324d4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 1 Jun 2011 12:49:03 +0200 Subject: Add function cowboy_http_req:compact/1 to regain memory. It removes all the non-essential data from the HTTP request record. It allows some applications to make better use of their memory, for example websockets which do not need to keep all the headers information and can simply discard it using this function. --- src/cowboy_http_req.erl | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src') diff --git a/src/cowboy_http_req.erl b/src/cowboy_http_req.erl index 3fbf95f..c2f2d2d 100644 --- a/src/cowboy_http_req.erl +++ b/src/cowboy_http_req.erl @@ -33,6 +33,10 @@ reply/4, chunked_reply/3, chunk/2 ]). %% Response API. +-export([ + compact/1 +]). %% Misc API. + -include("include/http.hrl"). -include_lib("eunit/include/eunit.hrl"). @@ -213,6 +217,14 @@ chunk(Data, #http_req{socket=Socket, transport=Transport, resp_state=chunks}) -> Transport:send(Socket, [integer_to_list(iolist_size(Data), 16), <<"\r\n">>, Data, <<"\r\n">>]). +%% Misc API. + +-spec compact(#http_req{}) -> #http_req{}. +compact(Req) -> + Req#http_req{host=undefined, host_info=undefined, path=undefined, + path_info=undefined, qs_vals=undefined, raw_qs=undefined, + bindings=undefined, headers=[]}. + %% Internal. -spec parse_qs(binary()) -> list({binary(), binary() | true}). -- cgit v1.2.3