Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Side by Side Diff: remoting/signaling/xmpp_signal_strategy.cc

Issue 2798393007: Use SignalingAddress in SignalStrategy insterface. (Closed)
Patch Set: header Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « remoting/signaling/xmpp_signal_strategy.h ('k') | remoting/test/protocol_perftest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "remoting/signaling/xmpp_signal_strategy.h" 5 #include "remoting/signaling/xmpp_signal_strategy.h"
6 6
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 12 matching lines...) Expand all
23 #include "net/cert/cert_verifier.h" 23 #include "net/cert/cert_verifier.h"
24 #include "net/cert/ct_policy_enforcer.h" 24 #include "net/cert/ct_policy_enforcer.h"
25 #include "net/cert/multi_log_ct_verifier.h" 25 #include "net/cert/multi_log_ct_verifier.h"
26 #include "net/http/transport_security_state.h" 26 #include "net/http/transport_security_state.h"
27 #include "net/socket/client_socket_factory.h" 27 #include "net/socket/client_socket_factory.h"
28 #include "net/socket/client_socket_handle.h" 28 #include "net/socket/client_socket_handle.h"
29 #include "net/socket/ssl_client_socket.h" 29 #include "net/socket/ssl_client_socket.h"
30 #include "net/url_request/url_request_context_getter.h" 30 #include "net/url_request/url_request_context_getter.h"
31 #include "remoting/base/buffered_socket_writer.h" 31 #include "remoting/base/buffered_socket_writer.h"
32 #include "remoting/base/logging.h" 32 #include "remoting/base/logging.h"
33 #include "remoting/signaling/signaling_address.h"
33 #include "remoting/signaling/xmpp_login_handler.h" 34 #include "remoting/signaling/xmpp_login_handler.h"
34 #include "remoting/signaling/xmpp_stream_parser.h" 35 #include "remoting/signaling/xmpp_stream_parser.h"
35 #include "third_party/libjingle_xmpp/xmllite/xmlelement.h" 36 #include "third_party/libjingle_xmpp/xmllite/xmlelement.h"
36 37
37 // Use 50 seconds keep-alive interval, in case routers terminate 38 // Use 50 seconds keep-alive interval, in case routers terminate
38 // connections that are idle for more than a minute. 39 // connections that are idle for more than a minute.
39 const int kKeepAliveIntervalSeconds = 50; 40 const int kKeepAliveIntervalSeconds = 50;
40 41
41 const int kReadBufferSize = 4096; 42 const int kReadBufferSize = 4096;
42 43
(...skipping 17 matching lines...) Expand all
60 Core( 61 Core(
61 net::ClientSocketFactory* socket_factory, 62 net::ClientSocketFactory* socket_factory,
62 const scoped_refptr<net::URLRequestContextGetter>& request_context_getter, 63 const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
63 const XmppServerConfig& xmpp_server_config); 64 const XmppServerConfig& xmpp_server_config);
64 ~Core() override; 65 ~Core() override;
65 66
66 void Connect(); 67 void Connect();
67 void Disconnect(); 68 void Disconnect();
68 State GetState() const; 69 State GetState() const;
69 Error GetError() const; 70 Error GetError() const;
70 std::string GetLocalJid() const; 71 const SignalingAddress& GetLocalAddress() const;
71 void AddListener(Listener* listener); 72 void AddListener(Listener* listener);
72 void RemoveListener(Listener* listener); 73 void RemoveListener(Listener* listener);
73 bool SendStanza(std::unique_ptr<buzz::XmlElement> stanza); 74 bool SendStanza(std::unique_ptr<buzz::XmlElement> stanza);
74 75
75 void SetAuthInfo(const std::string& username, 76 void SetAuthInfo(const std::string& username,
76 const std::string& auth_token); 77 const std::string& auth_token);
77 78
78 private: 79 private:
79 enum class TlsState { 80 enum class TlsState {
80 // StartTls() hasn't been called. |socket_| is not encrypted. 81 // StartTls() hasn't been called. |socket_| is not encrypted.
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 129
129 std::unique_ptr<net::StreamSocket> socket_; 130 std::unique_ptr<net::StreamSocket> socket_;
130 std::unique_ptr<BufferedSocketWriter> writer_; 131 std::unique_ptr<BufferedSocketWriter> writer_;
131 scoped_refptr<net::IOBuffer> read_buffer_; 132 scoped_refptr<net::IOBuffer> read_buffer_;
132 bool read_pending_ = false; 133 bool read_pending_ = false;
133 134
134 TlsState tls_state_ = TlsState::NOT_REQUESTED; 135 TlsState tls_state_ = TlsState::NOT_REQUESTED;
135 136
136 std::unique_ptr<XmppLoginHandler> login_handler_; 137 std::unique_ptr<XmppLoginHandler> login_handler_;
137 std::unique_ptr<XmppStreamParser> stream_parser_; 138 std::unique_ptr<XmppStreamParser> stream_parser_;
138 std::string jid_; 139 SignalingAddress local_address_;
139 140
140 Error error_ = OK; 141 Error error_ = OK;
141 142
142 base::ObserverList<Listener, true> listeners_; 143 base::ObserverList<Listener, true> listeners_;
143 144
144 base::RepeatingTimer keep_alive_timer_; 145 base::RepeatingTimer keep_alive_timer_;
145 146
146 base::ThreadChecker thread_checker_; 147 base::ThreadChecker thread_checker_;
147 148
148 DISALLOW_COPY_AND_ASSIGN(Core); 149 DISALLOW_COPY_AND_ASSIGN(Core);
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 } else { 220 } else {
220 return DISCONNECTED; 221 return DISCONNECTED;
221 } 222 }
222 } 223 }
223 224
224 SignalStrategy::Error XmppSignalStrategy::Core::GetError() const { 225 SignalStrategy::Error XmppSignalStrategy::Core::GetError() const {
225 DCHECK(thread_checker_.CalledOnValidThread()); 226 DCHECK(thread_checker_.CalledOnValidThread());
226 return error_; 227 return error_;
227 } 228 }
228 229
229 std::string XmppSignalStrategy::Core::GetLocalJid() const { 230 const SignalingAddress& XmppSignalStrategy::Core::GetLocalAddress() const {
230 DCHECK(thread_checker_.CalledOnValidThread()); 231 DCHECK(thread_checker_.CalledOnValidThread());
231 return jid_; 232 return local_address_;
232 } 233 }
233 234
234 void XmppSignalStrategy::Core::AddListener(Listener* listener) { 235 void XmppSignalStrategy::Core::AddListener(Listener* listener) {
235 DCHECK(thread_checker_.CalledOnValidThread()); 236 DCHECK(thread_checker_.CalledOnValidThread());
236 listeners_.AddObserver(listener); 237 listeners_.AddObserver(listener);
237 } 238 }
238 239
239 void XmppSignalStrategy::Core::RemoveListener(Listener* listener) { 240 void XmppSignalStrategy::Core::RemoveListener(Listener* listener) {
240 DCHECK(thread_checker_.CalledOnValidThread()); 241 DCHECK(thread_checker_.CalledOnValidThread());
241 listeners_.RemoveObserver(listener); 242 listeners_.RemoveObserver(listener);
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 base::Bind(&Core::OnTlsConnected, base::Unretained(this))); 321 base::Bind(&Core::OnTlsConnected, base::Unretained(this)));
321 if (result != net::ERR_IO_PENDING) 322 if (result != net::ERR_IO_PENDING)
322 OnTlsConnected(result); 323 OnTlsConnected(result);
323 } 324 }
324 325
325 void XmppSignalStrategy::Core::OnHandshakeDone( 326 void XmppSignalStrategy::Core::OnHandshakeDone(
326 const std::string& jid, 327 const std::string& jid,
327 std::unique_ptr<XmppStreamParser> parser) { 328 std::unique_ptr<XmppStreamParser> parser) {
328 DCHECK(thread_checker_.CalledOnValidThread()); 329 DCHECK(thread_checker_.CalledOnValidThread());
329 330
330 jid_ = jid; 331 local_address_ = SignalingAddress(jid);
331 stream_parser_ = std::move(parser); 332 stream_parser_ = std::move(parser);
332 stream_parser_->SetCallbacks( 333 stream_parser_->SetCallbacks(
333 base::Bind(&Core::OnStanza, base::Unretained(this)), 334 base::Bind(&Core::OnStanza, base::Unretained(this)),
334 base::Bind(&Core::OnParserError, base::Unretained(this))); 335 base::Bind(&Core::OnParserError, base::Unretained(this)));
335 336
336 // Don't need |login_handler_| anymore. 337 // Don't need |login_handler_| anymore.
337 login_handler_.reset(); 338 login_handler_.reset();
338 339
339 for (auto& observer : listeners_) 340 for (auto& observer : listeners_)
340 observer.OnSignalStrategyStateChange(CONNECTED); 341 observer.OnSignalStrategyStateChange(CONNECTED);
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 } 526 }
526 527
527 SignalStrategy::State XmppSignalStrategy::GetState() const { 528 SignalStrategy::State XmppSignalStrategy::GetState() const {
528 return core_->GetState(); 529 return core_->GetState();
529 } 530 }
530 531
531 SignalStrategy::Error XmppSignalStrategy::GetError() const { 532 SignalStrategy::Error XmppSignalStrategy::GetError() const {
532 return core_->GetError(); 533 return core_->GetError();
533 } 534 }
534 535
535 std::string XmppSignalStrategy::GetLocalJid() const { 536 const SignalingAddress& XmppSignalStrategy::GetLocalAddress() const {
536 return core_->GetLocalJid(); 537 return core_->GetLocalAddress();
537 } 538 }
538 539
539 void XmppSignalStrategy::AddListener(Listener* listener) { 540 void XmppSignalStrategy::AddListener(Listener* listener) {
540 core_->AddListener(listener); 541 core_->AddListener(listener);
541 } 542 }
542 543
543 void XmppSignalStrategy::RemoveListener(Listener* listener) { 544 void XmppSignalStrategy::RemoveListener(Listener* listener) {
544 core_->RemoveListener(listener); 545 core_->RemoveListener(listener);
545 } 546 }
546 bool XmppSignalStrategy::SendStanza(std::unique_ptr<buzz::XmlElement> stanza) { 547 bool XmppSignalStrategy::SendStanza(std::unique_ptr<buzz::XmlElement> stanza) {
547 return core_->SendStanza(std::move(stanza)); 548 return core_->SendStanza(std::move(stanza));
548 } 549 }
549 550
550 std::string XmppSignalStrategy::GetNextId() { 551 std::string XmppSignalStrategy::GetNextId() {
551 return base::Uint64ToString(base::RandUint64()); 552 return base::Uint64ToString(base::RandUint64());
552 } 553 }
553 554
554 void XmppSignalStrategy::SetAuthInfo(const std::string& username, 555 void XmppSignalStrategy::SetAuthInfo(const std::string& username,
555 const std::string& auth_token) { 556 const std::string& auth_token) {
556 core_->SetAuthInfo(username, auth_token); 557 core_->SetAuthInfo(username, auth_token);
557 } 558 }
558 559
559 } // namespace remoting 560 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/signaling/xmpp_signal_strategy.h ('k') | remoting/test/protocol_perftest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698