OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "bin/vmstats_impl.h" | 5 #include "bin/vmstats_impl.h" |
6 | 6 |
7 #include "bin/file.h" | 7 #include "bin/file.h" |
8 #include "bin/log.h" | 8 #include "bin/log.h" |
9 #include "bin/platform.h" | 9 #include "bin/platform.h" |
10 #include "bin/resources.h" | 10 #include "bin/resources.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 ASSERT(instance_monitor_ != NULL); | 48 ASSERT(instance_monitor_ != NULL); |
49 Socket::Initialize(); | 49 Socket::Initialize(); |
50 | 50 |
51 if (root_dir != NULL) { | 51 if (root_dir != NULL) { |
52 instance_->root_directory_ = root_dir; | 52 instance_->root_directory_ = root_dir; |
53 } | 53 } |
54 | 54 |
55 // TODO(tball): allow host to be specified. | 55 // TODO(tball): allow host to be specified. |
56 char* host = const_cast<char*>(DEFAULT_HOST); | 56 char* host = const_cast<char*>(DEFAULT_HOST); |
57 OSError* os_error; | 57 OSError* os_error; |
58 SocketAddresses* addresses = Socket::LookupAddress(host, -1, &os_error); | 58 const char* host_ip = Socket::LookupIPv4Address(host, &os_error); |
59 if (addresses == NULL) { | 59 if (host_ip == NULL) { |
60 Log::PrintErr("Failed IP lookup of VmStats host %s: %s\n", | 60 Log::PrintErr("Failed IP lookup of VmStats host %s: %s\n", |
61 host, os_error->message()); | 61 host, os_error->message()); |
62 return; | 62 return; |
63 } | 63 } |
| 64 |
64 const intptr_t BACKLOG = 128; // Default value from HttpServer.dart | 65 const intptr_t BACKLOG = 128; // Default value from HttpServer.dart |
65 int64_t address = ServerSocket::CreateBindListen( | 66 int64_t address = ServerSocket::CreateBindListen(host_ip, port, BACKLOG); |
66 addresses->GetAt(0)->addr(), port, BACKLOG); | |
67 if (address < 0) { | 67 if (address < 0) { |
68 Log::PrintErr("Failed binding VmStats socket: %s:%d\n", host, port); | 68 Log::PrintErr("Failed binding VmStats socket: %s:%d\n", host, port); |
69 return; | 69 return; |
70 } | 70 } |
71 instance_->bind_address_ = address; | 71 instance_->bind_address_ = address; |
72 Log::Print("VmStats URL: http://%s:%"Pd"/\n", host, Socket::GetPort(address)); | 72 Log::Print("VmStats URL: http://%s:%"Pd"/\n", host, Socket::GetPort(address)); |
73 | 73 |
74 MonitorLocker ml(instance_monitor_); | 74 MonitorLocker ml(instance_monitor_); |
75 instance_->running_ = true; | 75 instance_->running_ = true; |
76 int err = dart::Thread::Start(WebServer, address); | 76 int err = dart::Thread::Start(WebServer, address); |
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
465 VmStatusPlugin* plugin = instance_->registered_plugin_list_; | 465 VmStatusPlugin* plugin = instance_->registered_plugin_list_; |
466 while (plugin != NULL) { | 466 while (plugin != NULL) { |
467 char* result = (plugin->callback())(request); | 467 char* result = (plugin->callback())(request); |
468 if (result != NULL) { | 468 if (result != NULL) { |
469 return result; | 469 return result; |
470 } | 470 } |
471 plugin = plugin->next(); | 471 plugin = plugin->next(); |
472 } | 472 } |
473 return NULL; | 473 return NULL; |
474 } | 474 } |
OLD | NEW |