anchor.diff:      ?hdrt("set socket options (binary, packet & active)", []),
       http_transport:setopts(SocketType, Socket, 
   			   [binary, {packet, 0}, {active, once}]),
  -    NewState =  data_receive_counter(activate_request_timeout(State), httpd_util:lookup(ConfigDB, bit_limit, false)),
  +    NewState =  data_receive_counter(activate_request_timeout(State), httpd_util:lookup(ConfigDB, byte_limit, false)),
       ?hdrt("init done", []),
       gen_server:enter_loop(?MODULE, [], NewState).
   
  
positive.code: 		headers,  %% #http_request_h{}
  		body,      %% binary()
  		data,      %% The total data received in bits, checked after 10s
  		bit_limit  %% Bit limit per second before kick out
  	       }).
  
  %%====================================================================
  
negative.code:     ?hdrt("activate request timeout", [{time, Time}]),    
      Ref = erlang:send_after(Time, self(), timeout),
      State#state{timer = Ref}.
  data_receive_counter(State, Byte_limit) ->
      case Byte_limit of
  	false ->
  	    State#state{data = 0};
  	Nr ->
  	    erlang:send_after(10000, self(), check_data),
  	    State#state{data = 0, byte_limit = Nr}
      end.
  cancel_request_timeout(#state{timer = undefined} = State) ->
      State;
  