anchor.diff:          closed ->
               {next_state, StateName, Conn}
       end;
  +
  +handle_event({send_request, NotifyPid, Headers, Body},
  +        StateName,
  +        #connection{
  +            streams=Streams,
  +            next_available_stream_id=NextId
  +        }=Conn) ->
  +        case
  +            h2_stream_set:new_stream(
  +                NextId,
  +                NotifyPid,
  +                Conn#connection.stream_callback_mod,
  +                Conn#connection.socket,
  +                Conn#connection.peer_settings#settings.initial_window_size,
  +                Conn#connection.self_settings#settings.initial_window_size,
  +                Streams)
  +        of
  +            {error, Code, _NewStream} ->
  +                lager:warning("[~p] tried to create new_stream ~p, but error ~p",
  +                    [Conn#connection.type, NextId, Code]),
  +
  +                {next_state, StateName, Conn};
  +            GoodStreamSet ->
  +                lager:debug("[~p] added stream #~p to ~p",
  +                    [Conn#connection.type, NextId, GoodStreamSet]),
  +
  +                send_headers(self(), NextId, Headers),
  +                send_body(self(), NextId, Body),
  +
  +                {next_state, StateName, Conn#connection{
  +                    next_available_stream_id=NextId+2,
  +                    streams=GoodStreamSet
  +                }}
  +        end;
   
   handle_event({send_promise, StreamId, NewStreamId, Headers},
                StateName,
  
positive.code:     gen_fsm:send_all_state_event(Pid, {send_body, StreamId, Body, Opts}),
      ok.
  
  -spec get_peer(pid()) ->
      {ok, {inet:ip_address(), inet:port_number()}} | {error, term()}.
  get_peer(Pid) ->
  
negative.code:          send_headers/4,
           send_body/3,
           send_body/4,
           send_request/3,
           is_push/1,
           new_stream/1,
           new_stream/2,
  