Skip to content

Commit de2749b

Browse files
bnoordhuisMylesBorins
authored andcommitted
inspector: /json/version returns object, not array
Make /json/version return an object instead of an object wrapped in an array. Fixes: #9760 PR-URL: #9762 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Eugene Ostroukhov <eostroukhov@google.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
1 parent 9e902f5 commit de2749b

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

src/inspector_agent.cc

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,23 +91,30 @@ void OnBufferAlloc(uv_handle_t* handle, size_t len, uv_buf_t* buf) {
9191
buf->len = len;
9292
}
9393

94-
void SendHttpResponse(InspectorSocket* socket, const std::string& response) {
94+
void SendHttpResponse(InspectorSocket* socket, const char* response,
95+
size_t size) {
9596
const char HEADERS[] = "HTTP/1.0 200 OK\r\n"
9697
"Content-Type: application/json; charset=UTF-8\r\n"
9798
"Cache-Control: no-cache\r\n"
9899
"Content-Length: %zu\r\n"
99100
"\r\n";
100101
char header[sizeof(HEADERS) + 20];
101-
int header_len = snprintf(header, sizeof(header), HEADERS, response.size());
102+
int header_len = snprintf(header, sizeof(header), HEADERS, size);
102103
inspector_write(socket, header, header_len);
103-
inspector_write(socket, response.data(), response.size());
104+
inspector_write(socket, response, size);
105+
}
106+
107+
void SendHttpResponse(InspectorSocket* socket, const std::string& response) {
108+
SendHttpResponse(socket, response.data(), response.size());
104109
}
105110

106111
void SendVersionResponse(InspectorSocket* socket) {
107-
std::map<std::string, std::string> response;
108-
response["Browser"] = "node.js/" NODE_VERSION;
109-
response["Protocol-Version"] = "1.1";
110-
SendHttpResponse(socket, MapToString(response));
112+
static const char response[] =
113+
"{\n"
114+
" \"Browser\": \"node.js/" NODE_VERSION "\",\n"
115+
" \"Protocol-Version\": \"1.1\"\n"
116+
"}\n";
117+
SendHttpResponse(socket, response, sizeof(response) - 1);
111118
}
112119

113120
std::string GetProcessTitle() {

test/inspector/test-inspector.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ function checkListResponse(err, response) {
1717
function checkVersion(err, response) {
1818
assert.ifError(err);
1919
assert.ok(response);
20+
const expected = {
21+
'Browser': 'node.js/' + process.version,
22+
'Protocol-Version': '1.1',
23+
};
24+
assert.strictEqual(JSON.stringify(response),
25+
JSON.stringify(expected));
2026
}
2127

2228
function checkBadPath(err, response) {

0 commit comments

Comments
 (0)