| Index: extensions/browser/api/sockets_tcp_server/sockets_tcp_server_api.cc
|
| diff --git a/extensions/browser/api/sockets_tcp_server/sockets_tcp_server_api.cc b/extensions/browser/api/sockets_tcp_server/sockets_tcp_server_api.cc
|
| index a55d0b5e7383b69b4e90c0aba3e7117aeac57ee9..a4a1dca880b7083bba5b4908454d53f8ea169e8d 100644
|
| --- a/extensions/browser/api/sockets_tcp_server/sockets_tcp_server_api.cc
|
| +++ b/extensions/browser/api/sockets_tcp_server/sockets_tcp_server_api.cc
|
| @@ -176,10 +176,11 @@ bool SocketsTcpServerListenFunction::Prepare() {
|
| return socket_event_dispatcher_ != NULL;
|
| }
|
|
|
| -void SocketsTcpServerListenFunction::Work() {
|
| +void SocketsTcpServerListenFunction::AsyncWorkStart() {
|
| ResumableTCPServerSocket* socket = GetTcpSocket(params_->socket_id);
|
| if (!socket) {
|
| error_ = kSocketNotFoundError;
|
| + AsyncWorkCompleted();
|
| return;
|
| }
|
|
|
| @@ -187,6 +188,7 @@ void SocketsTcpServerListenFunction::Work() {
|
| SocketPermissionRequest::TCP_LISTEN, params_->address, params_->port);
|
| if (!SocketsManifestData::CheckRequest(extension(), param)) {
|
| error_ = kPermissionError;
|
| + AsyncWorkCompleted();
|
| return;
|
| }
|
|
|
| @@ -195,16 +197,17 @@ void SocketsTcpServerListenFunction::Work() {
|
| params_->port,
|
| params_->backlog.get() ? *params_->backlog.get() : kDefaultListenBacklog,
|
| &error_);
|
| -
|
| - if (net_result != net::OK)
|
| - error_ = net::ErrorToString(net_result);
|
| -
|
| + results_ = sockets_tcp_server::Listen::Results::Create(net_result);
|
| if (net_result == net::OK) {
|
| socket_event_dispatcher_->OnServerSocketListen(extension_->id(),
|
| params_->socket_id);
|
| + } else {
|
| + error_ = net::ErrorToString(net_result);
|
| + AsyncWorkCompleted();
|
| + return;
|
| }
|
|
|
| - results_ = sockets_tcp_server::Listen::Results::Create(net_result);
|
| + OpenFirewallHole(params_->address, params_->socket_id, socket);
|
| }
|
|
|
| SocketsTcpServerDisconnectFunction::SocketsTcpServerDisconnectFunction() {}
|
|
|