Index: remoting/protocol/jingle_session.h |
diff --git a/remoting/protocol/jingle_session.h b/remoting/protocol/jingle_session.h |
index eb30e50ffdc9c4c9e5cce6912394db1ac025b8b9..584aeae06624584c14097545e00074e2834b6043 100644 |
--- a/remoting/protocol/jingle_session.h |
+++ b/remoting/protocol/jingle_session.h |
@@ -51,7 +51,7 @@ class JingleSession : public base::NonThreadSafe, |
const std::string& jid() override; |
const CandidateSessionConfig* candidate_config() override; |
const SessionConfig& config() override; |
- void set_config(const SessionConfig& config) override; |
+ void set_config(scoped_ptr<SessionConfig> config) override; |
StreamChannelFactory* GetTransportChannelFactory() override; |
StreamChannelFactory* GetMultiplexedChannelFactory() override; |
void Close() override; |
@@ -62,6 +62,9 @@ class JingleSession : public base::NonThreadSafe, |
void CancelChannelCreation(const std::string& name) override; |
// Transport::EventHandler interface. |
+ void OnTransportIceCredentials(Transport* transport, |
+ const std::string& ufrag, |
+ const std::string& password) override; |
void OnTransportCandidate(Transport* transport, |
const cricket::Candidate& candidate) override; |
void OnTransportRouteChange(Transport* transport, |
@@ -82,8 +85,9 @@ class JingleSession : public base::NonThreadSafe, |
scoped_ptr<Authenticator> authenticator, |
scoped_ptr<CandidateSessionConfig> config); |
- // Adds to a new channel the remote candidates received before it was created. |
- void AddPendingRemoteCandidates(Transport* channel, const std::string& name); |
+ // Passes transport info to a new |channel| in case it was received before the |
+ // channel was created. |
+ void AddPendingRemoteTransportInfo(Transport* channel); |
// Called by JingleSessionManager for incoming connections. |
void InitializeIncomingConnection(const JingleMessage& initiate_message, |
@@ -100,6 +104,10 @@ class JingleSession : public base::NonThreadSafe, |
IqRequest* request, |
const buzz::XmlElement* response); |
+ // Creates empty |pending_transport_info_message_| and schedules timer for |
+ // SentTransportInfo() to sent the message later. |
+ void EnsurePendingTransportInfoMessage(); |
+ |
// Sends transport-info message with candidates from |pending_candidates_|. |
void SendTransportInfo(); |
@@ -158,8 +166,7 @@ class JingleSession : public base::NonThreadSafe, |
State state_; |
ErrorCode error_; |
- SessionConfig config_; |
- bool config_is_set_; |
+ scoped_ptr<SessionConfig> config_; |
scoped_ptr<Authenticator> authenticator_; |
@@ -174,10 +181,12 @@ class JingleSession : public base::NonThreadSafe, |
scoped_ptr<SecureChannelFactory> secure_channel_factory_; |
scoped_ptr<ChannelMultiplexer> channel_multiplexer_; |
- base::OneShotTimer<JingleSession> transport_infos_timer_; |
- std::list<JingleMessage::NamedCandidate> pending_candidates_; |
+ scoped_ptr<JingleMessage> pending_transport_info_message_; |
+ base::OneShotTimer<JingleSession> transport_info_timer_; |
- // Pending remote candidates, received before the local channels were created. |
+ // Pending remote transport info received before the local channels were |
+ // created. |
+ std::list<JingleMessage::IceCredentials> pending_remote_ice_credentials_; |
std::list<JingleMessage::NamedCandidate> pending_remote_candidates_; |
base::WeakPtrFactory<JingleSession> weak_factory_; |