| 1487 | } |
| 1488 | |
| 1489 | NetSocket Net::accept(NetSocket handleFd, NetAddress *remoteAddress) |
| 1490 | { |
| 1491 | sockaddr_storage addr; |
| 1492 | socklen_t addrLen = sizeof(addr); |
| 1493 | |
| 1494 | SOCKET socketFd = PlatformNetState::smReservedSocketList.resolve(handleFd); |
| 1495 | if (socketFd == InvalidSocketHandle) |
| 1496 | return NetSocket::INVALID; |
| 1497 | |
| 1498 | SOCKET acceptedSocketFd = ::accept(socketFd, (sockaddr *)&addr, &addrLen); |
| 1499 | if (acceptedSocketFd != InvalidSocketHandle) |
| 1500 | { |
| 1501 | if (addr.ss_family == AF_INET) |
| 1502 | { |
| 1503 | // ipv4 |
| 1504 | IPSocketToNetAddress(((struct sockaddr_in*)&addr), remoteAddress); |
| 1505 | } |
| 1506 | else if (addr.ss_family == AF_INET6) |
| 1507 | { |
| 1508 | // ipv6 |
| 1509 | IPSocket6ToNetAddress(((struct sockaddr_in6*)&addr), remoteAddress); |
| 1510 | } |
| 1511 | |
| 1512 | NetSocket newHandleFd = PlatformNetState::smReservedSocketList.reserve(acceptedSocketFd); |
| 1513 | return newHandleFd; |
| 1514 | } |
| 1515 | |
| 1516 | return NetSocket::INVALID; |
| 1517 | } |
| 1518 | |
| 1519 | Net::Error Net::bindAddress(const NetAddress &address, NetSocket handleFd, bool useUDP) |
| 1520 | { |
nothing calls this directly
no test coverage detected