Chromium Code Reviews| Index: mojo/spy/websocket_server.cc |
| diff --git a/mojo/spy/websocket_server.cc b/mojo/spy/websocket_server.cc |
| index 649a135c13e81fb363db3b878ad8833343ce515c..3da8d3cbe7a95da73dc5863826ad0df7d8b93a8a 100644 |
| --- a/mojo/spy/websocket_server.cc |
| +++ b/mojo/spy/websocket_server.cc |
| @@ -4,18 +4,32 @@ |
| #include "mojo/spy/websocket_server.h" |
| +#include <string> |
| + |
| #include "base/bind.h" |
| +#include "base/logging.h" |
| #include "base/strings/stringprintf.h" |
| +#include "base/time/time.h" |
| #include "net/base/ip_endpoint.h" |
| #include "net/base/net_errors.h" |
| #include "net/server/http_server_request_info.h" |
| #include "net/server/http_server_response_info.h" |
| #include "net/socket/tcp_listen_socket.h" |
| +#include "url/gurl.h" |
| namespace spy { |
| const int kNotConnected = -1; |
| +#define MOJO_DEBUGGER_MESSAGE_FORMAT "\"Start of message for url %s\n" \ |
| + "Message Time: %02d:%02d:%02d\n"\ |
| + "Message Bytes: %u\n"\ |
| + "Message Fields: %u\n"\ |
| + "Message Name: %u\n"\ |
| + "Message Request ID: %llu\n"\ |
| + "Message Type: %s\n"\ |
|
cpu_(ooo_6.6-7.5)
2014/07/09 18:18:45
for this to come out properly formatted you need
n
ananta
2014/07/09 21:24:55
Leaving \n as is. Fixed overall formatting.
|
| + "End of message\n\"" |
| + |
| WebSocketServer::WebSocketServer(int port) |
| : port_(port), connection_id_(kNotConnected) { |
| } |
| @@ -32,6 +46,36 @@ bool WebSocketServer::Start() { |
| return (error == net::OK); |
| } |
| +void WebSocketServer::LogMessageInfo( |
| + const mojo::MojoRequestHeader& message_header, |
| + const GURL& url, |
| + const base::Time& message_time) { |
| + base::Time::Exploded exploded; |
| + message_time.LocalExplode(&exploded); |
| + |
| + std::string output_message = base::StringPrintf( |
| + MOJO_DEBUGGER_MESSAGE_FORMAT, |
| + url.spec().c_str(), |
| + exploded.hour, |
| + exploded.minute, |
| + exploded.second, |
| + static_cast<unsigned>(message_header.num_bytes), |
| + static_cast<unsigned>(message_header.num_fields), |
| + static_cast<unsigned>(message_header.name), |
| + static_cast<unsigned long long>( |
| + message_header.num_fields == 3 ? message_header.request_id |
| + : 0), |
| + message_header.flags != 0 ? |
| + (message_header.flags & mojo::kMessageExpectsResponse ? |
| + "Expects response" : "Response message") |
| + : "Not a request or response message"); |
| + if (Connected()) { |
| + server_->SendOverWebSocket(connection_id_, output_message.c_str()); |
| + } else { |
| + DLOG(INFO) << output_message; |
| + } |
| +} |
| + |
| void WebSocketServer::OnHttpRequest( |
| int connection_id, |
| const net::HttpServerRequestInfo& info) { |
| @@ -67,4 +111,8 @@ void WebSocketServer::OnClose( |
| connection_id_ = kNotConnected; |
| } |
| +bool WebSocketServer::Connected() const { |
| + return connection_id_ != kNotConnected; |
| +} |
| + |
| } // namespace spy |