anchor.diff:  
   is_authorized(Req, State) ->
       pushy_wm_base:is_authorized(Req, State).
  +
  +forbidden(Req, State) ->
  +    forbidden(wrq:method(Req), Req, State).
  +forbidden('GET', Req,
  +        #config_state{requestor = Requestor,
  +                      requestor_type = Type,
  +                      node_name = NodeName} = State)
  +        when Requestor =/= NodeName, Type =:= client ->
  +    case envy:get(pushy, validate_client_node_name, true, boolean) of
  +        true ->
  +            Msg = <<"Client and node name must match">>,
  +            Req1 = wrq:set_resp_body(jiffy:encode({[{<<"error">>, [Msg]}]}), Req),
  +            {true, Req1, State};
  +        false -> pushy_wm_base:read_forbidden(Req, State)
  +    end;
  +forbidden('GET', Req, State) ->
  +    pushy_wm_base:read_forbidden(Req, State).
   
   allowed_methods(Req, State) ->
       {['GET'], Req, State}.
  
positive.code: %% then go to localhost:WXYZ/wmtrace
  
  service_available(Req, State) ->
      NodeName = wrq:path_info(node_name, Req),
      State1 = State#config_state{node_name = NodeName},
      {true, Req, State1}.
  
  
negative.code:          allowed_methods/2,
           content_types_provided/2,
           is_authorized/2,
           forbidden/2,
           malformed_request/2,
           service_available/2,
           to_json/2]).
  