anchor.diff:  	{error, E} ->
   	    logger:log(error, "TCP receiver: Error when reading data : ~s (~p)", [inet:format_error(E), E]),
   	    {error, E}
  +    end.
  +
  +%% Look for header-body separator, return true | false
  +has_header_body_separator(Data) ->
  +    case string:str(Data, "\r\n\r\n") of
  +	0 ->
  +	    false;
  +	N when is_integer(N) ->
  +	    true
       end.
   
   %% We have found the separator between Header and Body. We can now extract the
  
positive.code: 
  	       {ssl, Socket, B} ->
  		   L = binary_to_list(B),
  		   logger:log(debug, "TCP receiver: Received ~p bytes of data, adding it to my buffer which contained ~p bytes of data X",
  			      [length(L), length(DataIn)]),
  		   %% remove_separator() removes any leading CR or LF
  		   NewDataIn = lists:append(DataIn, L),
  		   SoFar = remove_separator(NewDataIn),
  		   ssl:setopts(Socket, [{active, once}]),
  		   %% Look for header-body separator
  		   case string:str(SoFar, "\r\n\r\n") of
  		       0 ->
  			   %% No Header Body separator yet, read more data
  			   SoFar;
  		       _ ->
  			   AdditionalData = header_received(SoFar, State),
  			   AdditionalData
  		   end;
  
  
  	       {ssl_closed, Socket} ->
  		   logger:log(debug, "TCP receiver: Extra debug: Socket closed (Socket: ~p, local ~p, remote ~p)",
  
negative.code: 	[CLenStr] ->
  	    case util:isnumeric(CLenStr) of
  		true ->
  		    %% Be extra careful and check for numeric value.
  		    %% We don't have to worry about partially received Content-Length
  		    %% header here since this function doesn't get invoked until
  		    %% the header-body separator has been seen.
  		    list_to_integer(CLenStr);
  		false ->
  		    invalid
  