| 1468 | } |
| 1469 | |
| 1470 | NetSocket Net::accept(NetSocket handleFd, NetAddress *remoteAddress) |
| 1471 | { |
| 1472 | sockaddr_storage addr; |
| 1473 | socklen_t addrLen = sizeof(addr); |
| 1474 | |
| 1475 | SOCKET socketFd = PlatformNetState::smReservedSocketList.resolve(handleFd); |
| 1476 | if (socketFd == InvalidSocketHandle) |
| 1477 | return NetSocket::INVALID; |
| 1478 | |
| 1479 | SOCKET acceptedSocketFd = ::accept(socketFd, (sockaddr *)&addr, &addrLen); |
| 1480 | if (acceptedSocketFd != InvalidSocketHandle) |
| 1481 | { |
| 1482 | if (addr.ss_family == AF_INET) |
| 1483 | { |
| 1484 | // ipv4 |
| 1485 | IPSocketToNetAddress(((struct sockaddr_in*)&addr), remoteAddress); |
| 1486 | } |
| 1487 | else if (addr.ss_family == AF_INET6) |
| 1488 | { |
| 1489 | // ipv6 |
| 1490 | IPSocket6ToNetAddress(((struct sockaddr_in6*)&addr), remoteAddress); |
| 1491 | } |
| 1492 | |
| 1493 | NetSocket newHandleFd = PlatformNetState::smReservedSocketList.reserve(acceptedSocketFd); |
| 1494 | return newHandleFd; |
| 1495 | } |
| 1496 | |
| 1497 | return NetSocket::INVALID; |
| 1498 | } |
| 1499 | |
| 1500 | Net::Error Net::bindAddress(const NetAddress &address, NetSocket handleFd, bool useUDP) |
| 1501 | { |
no test coverage detected