Chromium Code Reviews| Index: mojo/edk/system/node_controller.cc |
| diff --git a/mojo/edk/system/node_controller.cc b/mojo/edk/system/node_controller.cc |
| index 5fc55f557d7063cd50071b398a17f90bdc5d320d..6469414f2764a325489e819d5337d45929beb9f8 100644 |
| --- a/mojo/edk/system/node_controller.cc |
| +++ b/mojo/edk/system/node_controller.cc |
| @@ -545,6 +545,8 @@ void NodeController::DropPeer(const ports::NodeName& name) { |
| node_->ClosePort(port); |
| node_->LostConnectionToNode(name); |
| + |
| + AcceptIncomingMessages(); |
| } |
| void NodeController::SendPeerMessage(const ports::NodeName& name, |
| @@ -740,14 +742,16 @@ void NodeController::OnAcceptChild(const ports::NodeName& from_node, |
| scoped_refptr<NodeChannel> parent; |
| { |
| base::AutoLock lock(parent_lock_); |
| - if (!bootstrap_parent_channel_ || parent_name_ != ports::kInvalidNodeName) { |
| - DLOG(ERROR) << "Unexpected AcceptChild message from " << from_node; |
| - DropPeer(from_node); |
| - return; |
| + if (bootstrap_parent_channel_ && parent_name_ != ports::kInvalidNodeName) { |
|
Anand Mistry (off Chromium)
2016/07/07 00:07:01
Looks like you forgot to invert the second part of
Ken Rockot(use gerrit already)
2016/07/07 13:17:00
indeed, done
|
| + parent_name_ = parent_name; |
| + parent = bootstrap_parent_channel_; |
| } |
| + } |
| - parent_name_ = parent_name; |
| - parent = bootstrap_parent_channel_; |
| + if (!parent) { |
| + DLOG(ERROR) << "Unexpected AcceptChild message from " << from_node; |
| + DropPeer(from_node); |
| + return; |
| } |
| parent->SetRemoteNodeName(parent_name); |
| @@ -996,6 +1000,8 @@ void NodeController::OnRequestPortMerge( |
| int rv = node_->MergePorts(local_port, from_node, connector_port_name); |
| if (rv != ports::OK) |
| DLOG(ERROR) << "MergePorts failed: " << rv; |
| + |
| + AcceptIncomingMessages(); |
| } |
| void NodeController::OnRequestIntroduction(const ports::NodeName& from_node, |