narrow the surface area of the ControlSettings api to expose only a few remote settings
This commit is contained in:
@@ -30,7 +30,7 @@ use self::framed_read::FramedRead;
|
||||
use self::framed_write::FramedWrite;
|
||||
use self::ping_pong::{ControlPing, PingPayload, PingPong};
|
||||
use self::ready::ReadySink;
|
||||
use self::settings::{ApplySettings, /*ControlSettings,*/ Settings};
|
||||
use self::settings::{ApplySettings, ControlSettings, Settings};
|
||||
use self::stream_recv_close::StreamRecvClose;
|
||||
use self::stream_recv_open::StreamRecvOpen;
|
||||
use self::stream_send_close::StreamSendClose;
|
||||
@@ -165,7 +165,7 @@ impl WindowUpdate {
|
||||
/// Create a full H2 transport from an I/O handle.
|
||||
///
|
||||
/// This is called as the final step of the client handshake future.
|
||||
pub fn from_io<T, P, B>(io: T, settings: frame::SettingSet)
|
||||
pub fn from_io<T, P, B>(io: T, local_settings: frame::SettingSet)
|
||||
-> Connection<T, P, B>
|
||||
where T: AsyncRead + AsyncWrite,
|
||||
P: Peer,
|
||||
@@ -177,10 +177,9 @@ pub fn from_io<T, P, B>(io: T, settings: frame::SettingSet)
|
||||
// weird, but oh well...
|
||||
//
|
||||
// We first create a Settings directly around a framed writer
|
||||
let transport = Settings::new(
|
||||
framed_write, settings);
|
||||
let transport = Settings::new(framed_write, local_settings.clone());
|
||||
|
||||
from_server_handshaker(transport)
|
||||
from_server_handshaker(transport, local_settings)
|
||||
}
|
||||
|
||||
/// Create a transport prepared to handle the server handshake.
|
||||
@@ -198,16 +197,18 @@ pub fn server_handshaker<T, B>(io: T, settings: frame::SettingSet)
|
||||
}
|
||||
|
||||
/// Create a full H2 transport from the server handshaker
|
||||
pub fn from_server_handshaker<T, P, B>(settings: Settings<FramedWrite<T, B::Buf>>)
|
||||
pub fn from_server_handshaker<T, P, B>(settings: Settings<FramedWrite<T, B::Buf>>,
|
||||
local_settings: frame::SettingSet)
|
||||
-> Connection<T, P, B>
|
||||
where T: AsyncRead + AsyncWrite,
|
||||
P: Peer,
|
||||
B: IntoBuf,
|
||||
{
|
||||
let initial_recv_window_size = settings.local_settings().initial_window_size();
|
||||
let initial_send_window_size = settings.remote_settings().initial_window_size();
|
||||
let local_max_concurrency = settings.local_settings().max_concurrent_streams();
|
||||
let remote_max_concurrency = settings.remote_settings().max_concurrent_streams();
|
||||
let initial_recv_window_size = local_settings.initial_window_size().unwrap_or(65_535);
|
||||
let local_max_concurrency = local_settings.max_concurrent_streams();
|
||||
|
||||
let initial_send_window_size = settings.remote_initial_window_size();
|
||||
let remote_max_concurrency = settings.remote_max_concurrent_streams();
|
||||
|
||||
// Replace Settings' writer with a full transport.
|
||||
let transport = settings.swap_inner(|io| {
|
||||
|
||||
Reference in New Issue
Block a user