Skip to content

Commit e3b6ea6

Browse files
committed
Send connect message if client is connected.
1 parent 3795cc5 commit e3b6ea6

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

atom/browser/node_debugger.cc

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ namespace {
2424
// taken by gin, blink and node, using 2 is a safe option for now.
2525
const int kIsolateSlot = 2;
2626

27+
const char* kContentLength = "Content-Length";
28+
2729
} // namespace
2830

2931
NodeDebugger::NodeDebugger(v8::Isolate* isolate)
@@ -105,13 +107,23 @@ void NodeDebugger::OnMessage(const std::string& message) {
105107

106108
void NodeDebugger::SendMessage(const std::string& message) {
107109
if (accepted_socket_) {
108-
std::string header = base::StringPrintf("Content-Length: %d\r\n\r\n",
109-
static_cast<int>(message.size()));
110+
std::string header = base::StringPrintf(
111+
"%s: %d\r\n\r\n", kContentLength, static_cast<int>(message.size()));
110112
accepted_socket_->Send(header);
111113
accepted_socket_->Send(message);
112114
}
113115
}
114116

117+
void NodeDebugger::SendConnectMessage() {
118+
accepted_socket_->Send(base::StringPrintf(
119+
"Type: connect\r\n"
120+
"V8-Version: %s\r\n"
121+
"Protocol-Version: 1\r\n"
122+
"Embedding-Host: %s\r\n"
123+
"%s: 0\r\n",
124+
v8::V8::GetVersion(), "Atom-Shell", kContentLength), true);
125+
}
126+
115127
// static
116128
void NodeDebugger::DebugMessageHandler(const v8::Debug::Message& message) {
117129
NodeDebugger* self = static_cast<NodeDebugger*>(
@@ -132,6 +144,7 @@ void NodeDebugger::DidAccept(net::StreamListenSocket* server,
132144
}
133145

134146
accepted_socket_ = socket.Pass();
147+
SendConnectMessage();
135148
}
136149

137150
void NodeDebugger::DidRead(net::StreamListenSocket* socket,

atom/browser/node_debugger.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class NodeDebugger : public net::StreamListenSocket::Delegate {
2828
void CloseSession();
2929
void OnMessage(const std::string& message);
3030
void SendMessage(const std::string& message);
31+
void SendConnectMessage();
3132

3233
static void DebugMessageHandler(const v8::Debug::Message& message);
3334

0 commit comments

Comments
 (0)