| 1419 | namespace internal { |
| 1420 | |
| 1421 | void ignore_recv_data( |
| 1422 | const Future<size_t>& length, |
| 1423 | Socket socket, |
| 1424 | char* data, |
| 1425 | size_t size) |
| 1426 | { |
| 1427 | if (!length.isReady() || length.get() == 0) { |
| 1428 | if (length.isFailed()) { |
| 1429 | Try<Address> peer = socket.peer(); |
| 1430 | |
| 1431 | LOG(WARNING) |
| 1432 | << "Failed to recv on socket " << socket.get() << " to peer '" |
| 1433 | << (peer.isSome() ? stringify(peer.get()) : "unknown") |
| 1434 | << "': " << length.failure(); |
| 1435 | } |
| 1436 | |
| 1437 | socket_manager->close(socket); |
| 1438 | delete[] data; |
| 1439 | return; |
| 1440 | } |
| 1441 | |
| 1442 | socket.recv(data, size) |
| 1443 | .onAny(lambda::bind(&ignore_recv_data, lambda::_1, socket, data, size)); |
| 1444 | } |
| 1445 | |
| 1446 | |
| 1447 | // Forward declaration. |