| 688 | |
| 689 | |
| 690 | SocketAddress SocketImpl::address() |
| 691 | { |
| 692 | if (_sockfd == POCO_INVALID_SOCKET) throw InvalidSocketException(); |
| 693 | |
| 694 | sockaddr_storage buffer; |
| 695 | struct sockaddr* pSA = reinterpret_cast<struct sockaddr*>(&buffer); |
| 696 | poco_socklen_t saLen = sizeof(buffer); |
| 697 | int rc = ::getsockname(_sockfd, pSA, &saLen); |
| 698 | if (rc == 0) |
| 699 | return SocketAddress(pSA, saLen); |
| 700 | else |
| 701 | error(); |
| 702 | return SocketAddress(); |
| 703 | } |
| 704 | |
| 705 | |
| 706 | SocketAddress SocketImpl::peerAddress() |