anchor.diff:  handle_info({Cls, Socket}, #state{dsock = {Trpt,Socket}, data = Data,
   					 caller = {handle_dir_result, Dir}} 
   	    = State) when {Cls,Trpt}=={tcp_closed,tcp} ; {Cls,Trpt}=={ssl_closed,ssl} ->
  +    ?DBG("Data channel close",[]),
       activate_ctrl_connection(State),
       {noreply, State#state{dsock = undefined, 
   			  caller = {handle_dir_result, Dir, Data},
  
positive.code: 	  tls_upgrading_data_connection = false,
  	  ftp_extension = ?FTP_EXT_DEFAULT
  	 }).
  
  
  -type shortage_reason()  :: 'etnospc' | 'epnospc'.
  
negative.code: 
  %%--------------------------------------------------------------------------
  %% File handling - chunk_transfer complete
  
  handle_ctrl_result({pos_compl, _}, #state{client = From,
                                            caller = #recv_chunk_closing{dconn_closed       = true,
                                                                         client_called_us   = true,
                                                                         pos_compl_received = false
                                                                        }}
  		   = State0) when From =/= undefined ->
      %% The pos_compl was the last event we waited for, finnish and clean up
      ?DBG("recv_chunk_closing pos_compl, last event",[]),
      gen_server:reply(From, ok),
      activate_ctrl_connection(State0),
      {noreply, State0#state{caller = undefined,
                             chunk = false,
                             client = undefined}};
  
  handle_ctrl_result({pos_compl, _}, #state{caller = #recv_chunk_closing{}=R}
  		   = State0) ->
      %% Waiting for more, don't care what
      ?DBG("recv_chunk_closing pos_compl, wait more",[]),
      {noreply, State0#state{caller = R#recv_chunk_closing{pos_compl_received=true}}};
  
  
  %%--------------------------------------------------------------------------
  %% File handling - recv_file
  