anchor.diff:  -module(disco_proxy).
  --export([start/0, update_nodes/1]).
  +-behaviour(gen_server).
  +
  +-export([start/0, stop/0, update_nodes/1]).
  +-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
  +         terminate/2, code_change/3]).
   
   -define(PROXY_CHECK_INTERVAL, 30000).
   -define(PROXY_RESTART_DELAY, 10000).
  
positive.code:     Httpd = disco:get_setting("DISCO_HTTPD"),
      Type = filename:basename(string:sub_word(Httpd, 1, $\ )),
      Body = make_config(Type, Nodes, Port, DiscoPort, PidFile),
      ok = file:write_file(Config, Body),
      case whereis(disco_proxy) of
          undefined -> ok;
          Pid -> exit(Pid, restart)
      end.
  
  proxy_monitor(Pid) ->
      case catch string:str(os:cmd(["ps -p", Pid]), Pid) of
  
negative.code:         _ ->
              error_logger:warning_report(
                  {"Could not start proxy (PID file not found or empty)", Out}),
              exit(proxy_init_failed)
      end.
  
  kill_proxy() ->
  