anchor.diff:  		_ ->
   			Child#child{input=IsFin2, in_buffer=Data2}
   	end,
  -	loop(replace_child(Child2, State));
  +	replace_child(Child2, State);
   %% General error, can't recover.
   handle_frame(State, {error, badprotocol}) ->
   	goaway(State, protocol_error),
  
positive.code: 		{self(), StreamID}, Peer, OnRequest, OnResponse,
  		Env, Middlewares, Method, Host, Path, Version, Headers
  	]),
  	loop(new_child(State, StreamID, Pid, IsFin));
  %% RST_STREAM.
  handle_frame(State, {rst_stream, StreamID, Status}) ->
  	error_logger:error_msg("Received RST_STREAM frame ~p ~p",
  		[StreamID, Status]),
  	%% @todo Stop StreamID.
  	loop(State);
  %% PING initiated by the server; ignore, we don't send any.
  handle_frame(State, {ping, PingID}) when PingID rem 2 =:= 0 ->
  	error_logger:error_msg("Ignored PING control frame: ~p~n", [PingID]),
  	loop(State);
  %% PING initiated by the client; send it back.
  handle_frame(State=#state{socket=Socket, transport=Transport},
  		{ping, PingID}) ->
  	Transport:send(Socket, cow_spdy:ping(PingID)),
  	loop(State);
  %% Data received for a stream.
  handle_frame(State, {data, StreamID, IsFin, Data}) ->
  	Child = #child{input=nofin, in_buffer=Buffer, is_recv=IsRecv}
  
negative.code: %% Ignore all other frames for now.
  handle_frame(State, Frame) ->
  	error_logger:error_msg("Ignored frame ~p", [Frame]),
  	State.
  
  cancel_recv_timeout(StreamID, TRef) ->
  	_ = erlang:cancel_timer(TRef),
  