anchor.diff:          end        
       end},
   
  -    {['GET', "/channels/(\\d+)/drains"], fun(Req, [ChannelId]) ->
  +    {['GET', "/channels/(\\d+)/drains$"], fun(Req, [ChannelId]) ->
           authorize(Req),
           Drains = logplex_drain:lookup(list_to_binary(ChannelId)),
           Req:respond({200, [], {struct, Drains}})
       end},
   
  -    {['DELETE', "/channels/(\\d+)/drains"], fun(Req, [ChannelId]) ->
  +    {['DELETE', "/channels/(\\d+)/drains$"], fun(Req, [ChannelId]) ->
           authorize(Req),
           
           {struct, Data} = mochijson2:decode(Req:recv_body()),
  
positive.code:         Req:respond({200, [{"Content-Type", "text/html"}], Session})
      end},
  
      {['GET', "/sessions/([\\w-]+)"], fun(Req, [Session]) ->
          Body = logplex_session:lookup(list_to_binary(Session)),
          not is_binary(Body) andalso error_resp(Req, 404, <<"session not found">>),
  
  
negative.code:         end
      end},
  
      {['GET', "/channels/(\\d+)/info$"], fun(Req, [ChannelId]) ->
          authorize(Req),
          Info = logplex_channel:info(list_to_binary(ChannelId)),
          Req:respond({200, [], mochijson2:encode({struct, Info})})
      end},
  
      {['POST', "/channels/(\\d+)/drains$"], fun(Req, [ChannelId]) ->
          authorize(Req),
  
          {struct, Data} = mochijson2:decode(Req:recv_body()),
  