Revision: 3928 Author: hans URL: http://bknr.net/trac/changeset/3928
Checkpoint some old changes from weeks ago.
U trunk/projects/pch/src/pch.erl U trunk/projects/pch/src/pch_cache_mgr.erl U trunk/projects/pch/src/pch_front.erl
Modified: trunk/projects/pch/src/pch.erl =================================================================== --- trunk/projects/pch/src/pch.erl 2008-09-19 06:24:57 UTC (rev 3927) +++ trunk/projects/pch/src/pch.erl 2008-09-21 05:13:44 UTC (rev 3928) @@ -2,16 +2,16 @@ %%% http://www.rsaccon.com/2007/09/mochiweb-erlang-based-webserver-toolkit.html
-module(pch). --export([start/0, loop/2, stop/0]). +-export([start/0, stop/0]). -define(HTTP_PORT, 9888). -define(MANAGEMENT_PORT, 9889).
start() -> Cache = ets:new(table, [set, public]), - pch_cache_mgr:start(?MANAGEMENT_PORT, Cache), +%% pch_cache_mgr:start(?MANAGEMENT_PORT, Cache), pch_front:start(?HTTP_PORT, Cache).
stop() -> - pch_front:stop(), - pch_cache_mgr:stop(). + pch_front:stop(). +%% pch_cache_mgr:stop().
Modified: trunk/projects/pch/src/pch_cache_mgr.erl =================================================================== --- trunk/projects/pch/src/pch_cache_mgr.erl 2008-09-19 06:24:57 UTC (rev 3927) +++ trunk/projects/pch/src/pch_cache_mgr.erl 2008-09-21 05:13:44 UTC (rev 3928) @@ -1,5 +1,5 @@ -module(pch_cache_mgr). --export([start/1, loop/2, stop/0]). +-export([start/2, loop/2, stop/0]).
start(Port, Cache) -> mochiweb_http:start([{loop, fun (Req) -> @@ -10,10 +10,30 @@ stop() -> mochiweb_http:stop(?MODULE).
+fetch_from_backend(Path) -> + io:format("Fetching ~p~n", [Path]), + {ok, {{_Version, 200, _ReasonPhrase}, Headers, Body}} = + http:request("http://127.0.0.1:8080" ++ Path), + io:format("Got ~p~n", [Headers]), + {ok, Headers, Body}. + +backend_request(Req, Cache) -> + Path = Req:get(path), + case ets:lookup(Cache, Path) of + [{Path, Headers, Body}] -> + io:format("cache HIT for ~p~n", [Path]), + Req:respond({200, Headers, Body}); + _ -> + io:format("cache MISS for ~p~n", [Path]), + {ok, Headers, Body} = fetch_from_backend(Path), + ets:insert(Cache, {Path, Headers, Body}), + Req:respond({200, Headers, Body}) + end. + loop(Req, Cache) -> case Req:get(method) of - M when M =:= 'GET' -> - backend_request(Req, Cache); +%% M when M =:= 'GET' -> +%% backend_request(Req, Cache); _ -> Req:respond({501, [], ""}) end.
Modified: trunk/projects/pch/src/pch_front.erl =================================================================== --- trunk/projects/pch/src/pch_front.erl 2008-09-19 06:24:57 UTC (rev 3927) +++ trunk/projects/pch/src/pch_front.erl 2008-09-21 05:13:44 UTC (rev 3928) @@ -1,5 +1,5 @@ -module(pch_front). --export([start/0, loop/2, stop/0]). +-export([start/2, loop/2, stop/0]).
start(Port, Cache) -> mochiweb_http:start([{loop, fun (Req) -> @@ -8,26 +8,8 @@ {name, ?MODULE}]).
stop() -> - mochiweb_http:stop(?MODULE), + mochiweb_http:stop(?MODULE).
-fetch_from_backend(Path) -> - {ok, {{_Version, 200, _ReasonPhrase}, Headers, Body}} = - http:request("http://test.createrainforest.org" ++ Path), - {ok, Headers, Body}. - -backend_request(Req, Cache) -> - Path = Req:get(path), - case ets:lookup(Cache, Path) of - [{Path, Headers, Body}] -> - io:format("cache HIT for ~p~n", [Path]), - Req:respond({200, Headers, Body}); - _ -> - io:format("cache MISS for ~p~n", [Path]), - {ok, Headers, Body} = fetch_from_backend(Path), - ets:insert(Cache, {Path, Headers, Body}), - Req:respond({200, Headers, Body}) - end. - loop(Req, Cache) -> case Req:get(method) of M when M =:= 'GET' ->