| 979 | } |
| 980 | |
| 981 | bool CService::GetSockAddr(struct sockaddr* paddr, socklen_t* addrlen) const { |
| 982 | if (IsIPv4()) { |
| 983 | if (*addrlen < (socklen_t)sizeof(struct sockaddr_in)) |
| 984 | return false; |
| 985 | *addrlen = sizeof(struct sockaddr_in); |
| 986 | struct sockaddr_in* paddrin = (struct sockaddr_in*)paddr; |
| 987 | memset(paddrin, 0, *addrlen); |
| 988 | if (!GetInAddr(&paddrin->sin_addr)) |
| 989 | return false; |
| 990 | paddrin->sin_family = AF_INET; |
| 991 | paddrin->sin_port = htons(port); |
| 992 | return true; |
| 993 | } |
| 994 | if (IsIPv6()) { |
| 995 | if (*addrlen < (socklen_t)sizeof(struct sockaddr_in6)) return false; |
| 996 | *addrlen = sizeof(struct sockaddr_in6); |
| 997 | struct sockaddr_in6* paddrin6 = (struct sockaddr_in6*)paddr; |
| 998 | memset(paddrin6, 0, *addrlen); |
| 999 | if (!GetIn6Addr(&paddrin6->sin6_addr)) |
| 1000 | return false; |
| 1001 | paddrin6->sin6_family = AF_INET6; |
| 1002 | paddrin6->sin6_port = htons(port); |
| 1003 | return true; |
| 1004 | } |
| 1005 | return false; |
| 1006 | } |
| 1007 | |
| 1008 | vector<unsigned char> CService::GetKey() const { |
| 1009 | vector<unsigned char> vKey; |
no outgoing calls
no test coverage detected