anchor.diff:          authorize(Req),
           Drains = logplex_channel:lookup_drains(list_to_integer(ChannelId)),
           not is_list(Drains) andalso exit({expected_list, Drains}),
  -        
  +
           Drains1 = [{struct, [{token, Token}, {host, Host}, {port, Port}]} || #drain{token=Token, host=Host, port=Port} <- Drains, Host =/= undefined],
           {200, iolist_to_binary(mochijson2:encode(Drains1))}
       end},
  
positive.code: %% copies of the Software, and to permit persons to whom the
  %% Software is furnished to do so, subject to the following
  %% conditions:
  %% 
  %% The above copyright notice and this permission notice shall be
  %% included in all copies or substantial portions of the Software.
  %% 
  %% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  %% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  %% OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  
negative.code: %% Copyright (c) 2010 Jacob Vorreuter <jacob.vorreuter@gmail.com>
  %%
  %% Permission is hereby granted, free of charge, to any person
  %% obtaining a copy of this software and associated documentation
  %% files (the "Software"), to deal in the Software without
  