<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -2,5 +2,7 @@
 -include(&quot;responder_base.erl&quot;).
 -compile(export_all).
 
-provide_pool(_A) -&gt;
-  resource_fountain:best_pool_for_details_match(details()).
+% This responder can modify the request, and is obligated to return
+% a pool and the request. You can just return it directly if you want.
+provide_pool(A, _GC, _SC) -&gt;
+  {resource_fountain:best_pool_for_details_match(details()), A}.</diff>
      <filename>elibs/frontend_responder.erl</filename>
    </modified>
    <modified>
      <diff>@@ -3,15 +3,10 @@
 -include(&quot;../include/yaws/yaws.hrl&quot;).
 
 
-test() -&gt; 
-  ModuleFilePath = code:which(?MODULE),
-  DirPath = filename:dirname(ModuleFilePath),
-  yaws_begin_server(yaws_global_configs(9001, DirPath ++ &quot;/../web&quot;)).
+setup(Port, DocRoot, Responder) -&gt;
+  yaws_begin_server(yaws_global_configs(Port, DocRoot, Responder)).
 
-setup(Port, DocRoot) -&gt;
-  yaws_begin_server(yaws_global_configs(Port, DocRoot)).
-
-yaws_global_configs(Port, DocRoot) -&gt; 
+yaws_global_configs(Port, DocRoot, Responder) -&gt; 
   Y = yaws_config:yaws_dir(),
   GC = #gconf{yaws_dir = Y,
               ebin_dir = [],
@@ -31,7 +26,7 @@ yaws_global_configs(Port, DocRoot) -&gt;
               servername = &quot;xle_responder&quot;,
               listen = {0,0,0,0},
               docroot = DocRoot, 
-              errormod_404 = frontend_responder,
+              errormod_404 = Responder,
               appmods = []},
   {GC,SC}.
 </diff>
      <filename>elibs/frontend_yaws.erl</filename>
    </modified>
    <modified>
      <diff>@@ -22,13 +22,14 @@ init([]) -&gt;
   Master = application:get_env(master),
   {ok, DocRoot} = application:get_env(docroot),
   {ok, Port} = application:get_env(port),
+  ResponderModule = figure_responder(),
   case Master of
     {ok, MasterNode} -&gt;
       ping_master(MasterNode);
     undefined -&gt;
       MasterNode = node()
   end,
-  frontend_yaws:setup(Port, DocRoot),
+  frontend_yaws:setup(Port, DocRoot, ResponderModule),
   {ok, {{one_for_one, 10, 600},
         [{master_beater,
           {master_beater, start_link, [MasterNode, ?GLOBAL_TIMEOUT, ?SLEEP_CYCLE]},
@@ -52,3 +53,10 @@ ping_master(Node) -&gt;
       ping_master(Node)
   end.
 
+figure_responder() -&gt;
+  case application:get_env(responder) of
+    {ok, Module} -&gt;
+      Module;
+    undefined -&gt; frontend_responder
+  end.
+      </diff>
      <filename>elibs/fuzed_frontend_supervisor.erl</filename>
    </modified>
    <modified>
      <diff>@@ -3,10 +3,9 @@
 -include(&quot;fuzed.hrl&quot;).
 -export([out404/3]).
 
-out404(A, _GC, SC) -&gt;
+out404(Arg, GC, SC) -&gt;
+  {Pool, A} = provide_pool(Arg, GC, SC),
   Parameters = [{request, {struct, parse_arg(A, SC)}}],
-  io:format(&quot;Param restructure:~n~p~n&quot;, [Parameters]),
-  Pool = provide_pool(A),
   case node_api:safely_send_call_to_pool_no_lookup(handle_request,
                                                    Parameters, 
                                                    pure,</diff>
      <filename>include/responder_base.erl</filename>
    </modified>
    <modified>
      <diff>@@ -60,6 +60,10 @@ OptionParser.new do |opts|
     options[:port] = dir
   end
 
+  opts.on(&quot;-f&quot;, &quot;--frontend-responder MODULE&quot;, &quot;Module to use for Pool calculation.&quot;) do |mod|
+    options[:module] = mod
+  end
+
   opts.on(&quot;-?&quot;, &quot;--help&quot;, &quot;Display arguments.&quot;) do
     puts opts
     exit(0)
@@ -73,6 +77,11 @@ docroot = options[:docroot] || &quot;/tmp&quot;
 spec = options[:spec] || &quot;kind=normal&quot;
 details = details_from_string(spec)
 port = options[:port] || &quot;8080&quot;
+mod = if options[:module]
+        &quot;-fuzed_frontend responder #{options[:module]}&quot;
+      else
+        &quot;&quot;
+      end
 
 if master !~ /@/
   abort &quot;Please specify fully qualified master node name e.g. -m master@fuzed.tools.powerset.com&quot;
@@ -90,6 +99,7 @@ cmd = %Q{erl -boot start_sasl \
              -fuzed_frontend details #{details} \
              -fuzed_frontend docroot '&quot;#{docroot}&quot;' \
              -fuzed_frontend port #{port} \
+             #{mod} \
              -config '#{FUZED_ROOT}/conf/fuzed_base' \
              -run fuzed_frontend start}.squeeze(' ')
 puts cmd</diff>
      <filename>rlibs/cli/frontend.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>fc71cc0e7fcfd4e09c6114963835356a9922bc64</id>
    </parent>
  </parents>
  <author>
    <name>David Fayram</name>
    <email>dfayram@gmail.com</email>
  </author>
  <url>http://github.com/KirinDave/fuzed/commit/0f6b09930784a37191dea47fb2b19559e192e657</url>
  <id>0f6b09930784a37191dea47fb2b19559e192e657</id>
  <committed-date>2008-05-11T20:03:17-07:00</committed-date>
  <authored-date>2008-05-11T20:03:17-07:00</authored-date>
  <message>Making the responder module user-specifiable.</message>
  <tree>59bc030ea33e4f910ac7abbb67d6f62ec63aef78</tree>
  <committer>
    <name>David Fayram</name>
    <email>dfayram@gmail.com</email>
  </committer>
</commit>
