anchor.diff:      gen_tcp:send(Client, flip(Data)).
   
   forward(Client, Remote, From) ->
  +    forward(Client, Remote, From, fun(_Args) -> ok end).
  +
  +forward(Client, Remote, From, Fun) ->
       try
           {ok, Packet} = gen_tcp:recv(Client, 0),
  -        ok = flip_send(Remote, Packet)
  +        ok = flip_send(Remote, Packet),
  +        Fun([Client, Remote, Packet]),
  +        ok
       catch
           Error:Reason ->
               From ! {close},
               exit({Error, Reason})
       end,
  -    forward(Client, Remote, From).
  +    forward(Client, Remote, From, Fun).
   
   heart() ->
       timer:sleep(10000),
  
positive.code:                     ets:insert(Infos, {Back, Info#info{address=Value,actived_at=unix_timestamp()}})
              end,
              info_loop(Status);
          {delete, Back} ->
              case ets:lookup(Infos, Back) of
                  [{Back, Info}] ->
  
negative.code:     back_process/1,
      front_process/3,
      forward/3,
      forward/4,
  
      heart/0
  ]).
  