protected void completeConnectionPreface ( ) throws Http2Exception { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "completeConnectionPreface entry: about to send preface SETTINGS frame" ) ; } FrameSettings settings ; // send out a settings frame with any HTTP2 settings that the user may have changed if ( Constants . SPEC_INITIAL_WINDOW_SIZE != this . streamReadWindowSize ) { settings = new FrameSettings ( 0 , - 1 , - 1 , this . muxLink . config . getH2MaxConcurrentStreams ( ) , ( int ) this . streamReadWindowSize , this . muxLink . config . getH2MaxFrameSize ( ) , - 1 , false ) ; } else { settings = new FrameSettings ( 0 , - 1 , - 1 , this . muxLink . config . getH2MaxConcurrentStreams ( ) , - 1 , this . muxLink . config . getH2MaxFrameSize ( ) , - 1 , false ) ; } this . frameType = FrameTypes . SETTINGS ; this . processNextFrame ( settings , Direction . WRITING_OUT ) ; if ( Constants . SPEC_INITIAL_WINDOW_SIZE != muxLink . maxReadWindowSize ) { // the user has changed the max connection read window, so we'll update that now FrameWindowUpdate wup = new FrameWindowUpdate ( 0 , ( int ) muxLink . maxReadWindowSize , false ) ; this . processNextFrame ( wup , Direction . WRITING_OUT ) ; } }
Complete the connection preface . At this point we should have received the client connection preface string . Now we need to make sure that the client sent a settings frame along with the preface update our settings and send an empty settings frame in response to the client preface .