Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Ostroukhov <eostroukhov@chromium.org>2017-05-01 23:31:14 +0300
committerEugene Ostroukhov <eostroukhov@chromium.org>2017-05-22 21:18:31 +0300
commit5c26378cb775526fbd71b91c2f9ad5e5fcee9d3e (patch)
tree76f7730f0eff6b62bcb9bfde97346d393889a020 /src/inspector_socket_server.h
parent3429c90f42c00ba3657f7c8d288843c5062a4bb5 (diff)
inspector: fix process._debugEnd() for inspector
This change ensures that the WebSocket server can be stopped (and restarted if needed) buy calling process._debugEnd. PR-URL: https://github.com/nodejs/node/pull/12777 Fixes: https://github.com/nodejs/node/issues/12559 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com>
Diffstat (limited to 'src/inspector_socket_server.h')
-rw-r--r--src/inspector_socket_server.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/inspector_socket_server.h b/src/inspector_socket_server.h
index b82d9ee6013..8c8e2aaade9 100644
--- a/src/inspector_socket_server.h
+++ b/src/inspector_socket_server.h
@@ -27,6 +27,7 @@ class SocketServerDelegate {
virtual std::vector<std::string> GetTargetIds() = 0;
virtual std::string GetTargetTitle(const std::string& id) = 0;
virtual std::string GetTargetUrl(const std::string& id) = 0;
+ virtual void ServerDone() = 0;
};
class InspectorSocketServer {
@@ -39,7 +40,7 @@ class InspectorSocketServer {
bool Start(uv_loop_t* loop);
void Stop(ServerCallback callback);
void Send(int session_id, const std::string& message);
- void TerminateConnections(ServerCallback callback);
+ void TerminateConnections();
int port() {
return port_;
}
@@ -59,11 +60,11 @@ class InspectorSocketServer {
void SendListResponse(InspectorSocket* socket);
void ReadCallback(InspectorSocket* socket, ssize_t read, const uv_buf_t* buf);
bool SessionStarted(SocketSession* session, const std::string& id);
- void SessionTerminated(int id);
+ void SessionTerminated(SocketSession* session);
bool TargetExists(const std::string& id);
- static void SocketSessionDeleter(SocketSession*);
SocketServerDelegate* Delegate() { return delegate_; }
+ enum class ServerState {kNew, kRunning, kStopping, kStopped};
uv_loop_t* loop_;
SocketServerDelegate* const delegate_;
const std::string host_;
@@ -74,6 +75,7 @@ class InspectorSocketServer {
std::map<int, SocketSession*> connected_sessions_;
int next_session_id_;
FILE* out_;
+ ServerState state_;
friend class SocketSession;
friend class Closer;