| Index: net/spdy/spdy_session.h
|
| ===================================================================
|
| --- net/spdy/spdy_session.h (revision 80449)
|
| +++ net/spdy/spdy_session.h (working copy)
|
| @@ -25,6 +25,7 @@
|
| #include "net/base/upload_data_stream.h"
|
| #include "net/socket/client_socket.h"
|
| #include "net/socket/client_socket_handle.h"
|
| +#include "net/socket/sctp_client_socket_pool.h"
|
| #include "net/socket/tcp_client_socket_pool.h"
|
| #include "net/spdy/spdy_framer.h"
|
| #include "net/spdy/spdy_io_buffer.h"
|
| @@ -37,6 +38,9 @@
|
| // reasonably with ethernet. Chop the world into 2-packet chunks. This is
|
| // somewhat arbitrary, but is reasonably small and ensures that we elicit
|
| // ACKs quickly from TCP (because TCP tries to only ACK every other packet).
|
| +// TODO(jtl): Replace kMss with kMss_TCP = 1430 and kMss_SCTP = 1452 and set
|
| +// MaxSpdyFrameChunkSize appropriately, based on which transport protocol we're
|
| +// using.
|
| const int kMss = 1430;
|
| const int kMaxSpdyFrameChunkSize = (2 * kMss) - spdy::SpdyFrame::size();
|
|
|
| @@ -59,6 +63,12 @@
|
| SpdySessionPool* spdy_session_pool,
|
| SpdySettingsStorage* spdy_settings,
|
| NetLog* net_log);
|
| + typedef void (SpdySession::*OnTransportConnect)(int result);
|
| + SpdySession(const HostPortProxyPair& host_port_proxy_pair,
|
| + SpdySessionPool* spdy_session_pool,
|
| + SpdySettingsStorage* spdy_settings,
|
| + OnTransportConnect on_transport_connect,
|
| + NetLog* net_log);
|
|
|
| const HostPortPair& host_port_pair() const {
|
| return host_port_proxy_pair_.first;
|
| @@ -186,6 +196,31 @@
|
| return connection_->socket()->WasEverUsed();
|
| }
|
|
|
| + // Returns true if the underling socket's transport protocol is SCTP.
|
| + bool using_sctp() {
|
| + if (connection_.get()->is_initialized())
|
| + return connection_.get()->socket()->protocol() ==
|
| + IPPROTO_SCTP ? true : false;
|
| + else
|
| + // TODO(jtl): return sctp_enabled() here?
|
| + return false;
|
| + }
|
| +
|
| + // Returns true if the underlying socket's transport protocol is SCTP and SPDY
|
| + // control frames are being sent on SCTP stream 0.
|
| + bool using_sctp_control_stream() {
|
| + if (connection_.get()->is_initialized())
|
| + return connection_.get()->socket()->using_sctp_control_stream();
|
| + else
|
| + // TODO(jtl): return sctp_enabled() here?
|
| + return false;
|
| + }
|
| +
|
| + // Maps a SPDY stream number to an SCTP stream ID.
|
| + uint16 MapSpdyToSctp(uint32 stream_id) {
|
| + return connection_->socket()->MapSpdyToSctp(stream_id);
|
| + }
|
| +
|
| void set_spdy_session_pool(SpdySessionPool* pool) {
|
| spdy_session_pool_ = NULL;
|
| }
|
| @@ -292,6 +327,9 @@
|
| // Get a new stream id.
|
| int GetNewStreamId();
|
|
|
| + // Get the SCTP stream ID for this SPDY frame.
|
| + uint16 GetSctpStreamID(const spdy::SpdyFrame& frame);
|
| +
|
| // Queue a frame for sending.
|
| // |frame| is the frame to send.
|
| // |priority| is the priority for insertion into the queue.
|
|
|