| Index: chrome/browser/nacl_host/nacl_process_host.cc
|
| ===================================================================
|
| --- chrome/browser/nacl_host/nacl_process_host.cc (revision 163266)
|
| +++ chrome/browser/nacl_host/nacl_process_host.cc (working copy)
|
| @@ -656,10 +656,24 @@
|
|
|
| #if defined(OS_POSIX)
|
| SocketDescriptor NaClProcessHost::GetDebugStubSocketHandle() {
|
| - SocketDescriptor s = net::TCPListenSocket::CreateAndBind("127.0.0.1",
|
| - kDebugStubPort);
|
| + NaClBrowser* nacl_browser = NaClBrowser::GetInstance();
|
| + SocketDescriptor s;
|
| + if (nacl_browser->HasDebugStubPortListener()) {
|
| + int port;
|
| + s = net::TCPListenSocket::CreateAndBindAnyPort("127.0.0.1", &port);
|
| + if (s != net::TCPListenSocket::kInvalidSocket) {
|
| + nacl_browser->DebugStubNewPortAllocated(port);
|
| + }
|
| + } else {
|
| + s = net::TCPListenSocket::CreateAndBind("127.0.0.1", kDebugStubPort);
|
| + }
|
| + if (s == net::TCPListenSocket::kInvalidSocket) {
|
| + LOG(ERROR) << "failed to open socket for debug stub";
|
| + return net::TCPListenSocket::kInvalidSocket;
|
| + }
|
| if (listen(s, 1)) {
|
| LOG(ERROR) << "listen() failed on debug stub socket";
|
| + close(s);
|
| return net::TCPListenSocket::kInvalidSocket;
|
| }
|
| return s;
|
|
|