| 1167 | } |
| 1168 | |
| 1169 | bool CService::GetSockAddr(struct sockaddr* paddr, socklen_t *addrlen) const |
| 1170 | { |
| 1171 | if (IsIPv4()) { |
| 1172 | if (*addrlen < (socklen_t)sizeof(struct sockaddr_in)) |
| 1173 | return false; |
| 1174 | *addrlen = sizeof(struct sockaddr_in); |
| 1175 | struct sockaddr_in *paddrin = (struct sockaddr_in*)paddr; |
| 1176 | memset(paddrin, 0, *addrlen); |
| 1177 | if (!GetInAddr(&paddrin->sin_addr)) |
| 1178 | return false; |
| 1179 | paddrin->sin_family = AF_INET; |
| 1180 | paddrin->sin_port = htons(port); |
| 1181 | return true; |
| 1182 | } |
| 1183 | if (IsIPv6()) { |
| 1184 | if (*addrlen < (socklen_t)sizeof(struct sockaddr_in6)) |
| 1185 | return false; |
| 1186 | *addrlen = sizeof(struct sockaddr_in6); |
| 1187 | struct sockaddr_in6 *paddrin6 = (struct sockaddr_in6*)paddr; |
| 1188 | memset(paddrin6, 0, *addrlen); |
| 1189 | if (!GetIn6Addr(&paddrin6->sin6_addr)) |
| 1190 | return false; |
| 1191 | paddrin6->sin6_family = AF_INET6; |
| 1192 | paddrin6->sin6_port = htons(port); |
| 1193 | return true; |
| 1194 | } |
| 1195 | return false; |
| 1196 | } |
| 1197 | |
| 1198 | std::vector<unsigned char> CService::GetKey() const |
| 1199 | { |
no outgoing calls
no test coverage detected