pub fn handshake(&mut self) -> Result<()> {
            self.pipe.handshake()?;

            // Client streams.
            self.client.send_settings(&mut self.pipe.client)?;
            self.pipe.advance().ok();

            self.client
                .open_qpack_encoder_stream(&mut self.pipe.client)?;
            self.pipe.advance().ok();

            self.client
                .open_qpack_decoder_stream(&mut self.pipe.client)?;
            self.pipe.advance().ok();

            if self.pipe.client.grease {
                self.client.open_grease_stream(&mut self.pipe.client)?;
            }

            self.pipe.advance().ok();

            // Server streams.
            self.server.send_settings(&mut self.pipe.server)?;
            self.pipe.advance().ok();

            self.server
                .open_qpack_encoder_stream(&mut self.pipe.server)?;
            self.pipe.advance().ok();

            self.server
                .open_qpack_decoder_stream(&mut self.pipe.server)?;
            self.pipe.advance().ok();

            if self.pipe.server.grease {
                self.server.open_grease_stream(&mut self.pipe.server)?;
            }

            self.advance().ok();

            while self.client.poll(&mut self.pipe.client).is_ok() {
                // Do nothing.
            }

            while self.server.poll(&mut self.pipe.server).is_ok() {
                // Do nothing.
            }

            Ok(())
        }
/// Do the HTTP/3 handshake so both ends are in sane initial state.
Do the HTTP/3 handshake so both ends are in sane initial state.
Do the HTTP / 3 handshake so both ends are in sane initial state .
pub fn handshake(&mut self) -> Result<()> {
            self.pipe.handshake()?;
            // Client streams.
            self.client.send_settings(&mut self.pipe.client)?;
            self.pipe.advance().ok();
            self.client
                .open_qpack_encoder_stream(&mut self.pipe.client)?;
            self.pipe.advance().ok();
            self.client
                .open_qpack_decoder_stream(&mut self.pipe.client)?;
            self.pipe.advance().ok();
            if self.pipe.client.grease {
                self.client.open_grease_stream(&mut self.pipe.client)?;
            }
            self.pipe.advance().ok();
            // Server streams.
            self.server.send_settings(&mut self.pipe.server)?;
            self.pipe.advance().ok();
            self.server
                .open_qpack_encoder_stream(&mut self.pipe.server)?;
            self.pipe.advance().ok();
            self.server
                .open_qpack_decoder_stream(&mut self.pipe.server)?;
            self.pipe.advance().ok();
            if self.pipe.server.grease {
                self.server.open_grease_stream(&mut self.pipe.server)?;
            }
            self.advance().ok();
            while self.client.poll(&mut self.pipe.client).is_ok() {
                // Do nothing.
            }
            while self.server.poll(&mut self.pipe.server).is_ok() {
                // Do nothing.
            }
            Ok(())
        }
pub fn handshake ( & mut self ) -> Result < ( ) > { self . pipe . handshake ( ) ? ; // Client streams. self . client . send_settings ( & mut self . pipe . client ) ? ; self . pipe . advance ( ) . ok ( ) ; self . client . open_qpack_encoder_stream ( & mut self . pipe . client ) ? ; self . pipe . advance ( ) . ok ( ) ; self . client . open_qpack_decoder_stream ( & mut self . pipe . client ) ? ; self . pipe . advance ( ) . ok ( ) ; if self . pipe . client . grease { self . client . open_grease_stream ( & mut self . pipe . client ) ? ; } self . pipe . advance ( ) . ok ( ) ; // Server streams. self . server . send_settings ( & mut self . pipe . server ) ? ; self . pipe . advance ( ) . ok ( ) ; self . server . open_qpack_encoder_stream ( & mut self . pipe . server ) ? ; self . pipe . advance ( ) . ok ( ) ; self . server . open_qpack_decoder_stream ( & mut self . pipe . server ) ? ; self . pipe . advance ( ) . ok ( ) ; if self . pipe . server . grease { self . server . open_grease_stream ( & mut self . pipe . server ) ? ; } self . advance ( ) . ok ( ) ; while self . client . poll ( & mut self . pipe . client ) . is_ok ( ) { // Do nothing. } while self . server . poll ( & mut self . pipe . server ) . is_ok ( ) { // Do nothing. } Ok ( ( ) ) }
Do the HTTP/3 handshake so both ends are in sane initial state.
Do the HTTP / 3 handshake so both ends are in sane initial state .
&mut self
&mut self