anchor.diff:  %% @end
   %%--------------------------------------------------------------------
   terminate(_Reason, #state{socket=Socket, remote=Remote}) ->
  +    io:format("~nTerminate... ~p~n~n", [_Reason]),
       case is_port(Socket) of
           true -> gen_tcp:close(Socket);
           false -> ok
  
positive.code:     end;
  
  %% recv from remote, and send back to client
  handle_info({tcp, Socket, Response}, #state{key=Key, socket=Client, remote=Socket} = State) ->
      {ok, RealData} = mp_crypto:decrypt(Key, Response),
      case gen_tcp:send(Client, RealData) of
          ok ->
  
negative.code: 
  -record(state, {key, socket, remote}).
  
  -include("../../include/socks_type.hrl").
  -define(TIMEOUT, 1000 * 60 * 10).
  -define(HTTP_METHOD_HEADER, [
      <<"GE">>,   % GET
  