anchor.diff:  		E ->
   			E
   	end.
  +start(Id,Info) ->
  +	gen_server:start_link(?MODULE, [Id,Info], []).
   
   stop() ->
   	gen_server:call(?MODULE, stop).
  
positive.code: 
  handle_info({tcp,S,<<Key:40/binary,Rem/binary>>},#dp{direction = receiver,isinit = false} = P) ->
  	Key = bkdcore:rpccookie(),
  	inet:setopts(P#dp.sock,[{active, once}]),
  	case Rem of
  		<<>> ->
  			{noreply,P#dp{isinit = true}};
  		<<"tunnel,",Mod1/binary>> ->
  			[From,Mod] = butil:split_first(Mod1,<<",">>),
  			ok = gen_tcp:send(S,<<"ok">>),
  			lager:debug("Started tunnel from ~p",[From]),
  
negative.code: 	{stop,normal,P};
  handle_info({tcp_closed,_},P) ->
  	lager:debug("Connection closed type ~p",[P#dp.direction]),
  	case P#dp.direction of
  		tunnel ->
  			spawn(fun() -> timer:sleep(1000), supervisor:delete_child(bkdcore_sup,{?MODULE,P#dp.connected_to,P#dp.iteration}) end);
  		_ ->
  			ok
  	end,
  	{stop,normal,P};
  handle_info(timeout,P) ->
  	case P#dp.callsininterval of
  