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

Unified Diff: remoting/host/host_plugin.cc

Issue 7004046: Fix use of SupportAccessVerifier in Host plugin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/host/host_plugin.cc
diff --git a/remoting/host/host_plugin.cc b/remoting/host/host_plugin.cc
index ac36cfa0bbadc5be508077a9428277334871d0c2..4236087e57a971e63fea10ce77f8af1b87d9c5dd 100644
--- a/remoting/host/host_plugin.cc
+++ b/remoting/host/host_plugin.cc
@@ -325,7 +325,9 @@ class HostNPScriptObject {
void OnStateChanged(State state);
// Currently just mock methods to verify that everything is working
Jamie 2011/05/20 20:18:02 Presumably this comment is no longer accurate?
Wez 2011/05/20 20:52:10 Done.
- void OnReceivedSupportID(bool success, const std::string& support_id);
+ void OnReceivedSupportID(remoting::SupportAccessVerifier* access_verifier,
+ bool success,
+ const std::string& support_id);
void OnConnected();
void OnHostShutdown();
@@ -407,23 +409,27 @@ bool HostNPScriptObject::Connect(const NPVariant* args,
host_key_pair.Generate();
host_key_pair.Save(host_config);
- // Create the Host.
- scoped_refptr<remoting::ChromotingHost> host =
- remoting::ChromotingHost::Create(&host_context_, host_config,
- access_verifier.release());
-
// Request registration of the host for support.
scoped_refptr<remoting::RegisterSupportHostRequest> register_request =
new remoting::RegisterSupportHostRequest();
if (!register_request->Init(
host_config.get(),
base::Bind(&HostNPScriptObject::OnReceivedSupportID,
- base::Unretained(this)))) {
+ base::Unretained(this),
+ access_verifier.get()))) {
SetException("connect: RegisterSupportHostRequest::Init failed");
return false;
}
+
+ // Create the Host.
+ scoped_refptr<remoting::ChromotingHost> host =
+ remoting::ChromotingHost::Create(&host_context_, host_config,
+ access_verifier.release());
host->AddStatusObserver(register_request);
+ // TODO(wez): Improve our authentication framework.
+ host->set_preauthenticated(true);
+
// Nothing went wrong, so lets save the host, config and request.
host_ = host;
host_config_ = host_config;
@@ -459,8 +465,10 @@ bool HostNPScriptObject::Disconnect(const NPVariant* args,
return true;
}
-void HostNPScriptObject::OnReceivedSupportID(bool success,
- const std::string& support_id) {
+void HostNPScriptObject::OnReceivedSupportID(
+ remoting::SupportAccessVerifier* access_verifier,
+ bool success,
+ const std::string& support_id) {
CHECK_NE(base::PlatformThread::CurrentId(), np_thread_id_);
if (!success) {
@@ -469,10 +477,13 @@ void HostNPScriptObject::OnReceivedSupportID(bool success,
return;
}
- // Combine the Support Id with the Host Id to make the Access Code
+ // Inform the AccessVerifier of our Support-Id, for authentication.
+ access_verifier->OnMe2MomHostRegistered(success, support_id);
+
+ // Combine the Support Id with the Host Id to make the Access Code.
// TODO(wez): Locking, anyone?
access_code_ = support_id + "-" + host_secret_;
- host_secret_ = std::string();
+ host_secret_.clear();
// Let the caller know that life is good.
OnStateChanged(kReceivedAccessCode);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698