| 192 | } |
| 193 | |
| 194 | void GetWinsockAddr(sockaddr_in6* res, const TUdpAddress& addr) { |
| 195 | if (0) { //addr.IsIPv4()) { |
| 196 | // use ipv4 to ipv6 mapping |
| 197 | //// ipv4 |
| 198 | //sockaddr_in &toAddress = *(sockaddr_in*)res; |
| 199 | //Zero(toAddress); |
| 200 | //toAddress.sin_family = AF_INET; |
| 201 | //toAddress.sin_addr.s_addr = addr.GetIPv4(); |
| 202 | //toAddress.sin_port = htons((u_short)addr.Port); |
| 203 | } else { |
| 204 | // ipv6 |
| 205 | sockaddr_in6& toAddress = *(sockaddr_in6*)res; |
| 206 | Zero(toAddress); |
| 207 | toAddress.sin6_family = AF_INET6; |
| 208 | *BreakAliasing<ui64>(toAddress.sin6_addr.s6_addr + 0) = addr.Network; |
| 209 | *BreakAliasing<ui64>(toAddress.sin6_addr.s6_addr + 8) = addr.Interface; |
| 210 | toAddress.sin6_scope_id = addr.Scope; |
| 211 | toAddress.sin6_port = htons((u_short)addr.Port); |
| 212 | } |
| 213 | } |
| 214 | |
| 215 | void GetWinsockAddrForMLNX(sockaddr_in6* res, const TUdpAddress& addr) { |
| 216 | if (addr.IsIPv4()) { |