| 913 | } |
| 914 | |
| 915 | inline void AssignAddressBytes(struct addrinfo* ai, std::string& out) |
| 916 | { |
| 917 | switch (ai->ai_family) |
| 918 | { |
| 919 | case AF_INET: |
| 920 | { |
| 921 | sockaddr_in* sav4 = (sockaddr_in*)ai->ai_addr; |
| 922 | out.assign((const char*)&(sav4->sin_addr), sizeof(in_addr)); |
| 923 | std::cout << "ipv4 " << sizeof(in_addr) << std::endl; |
| 924 | break; |
| 925 | } |
| 926 | case AF_INET6: |
| 927 | { |
| 928 | sockaddr_in6* sav6 = (sockaddr_in6*)ai->ai_addr; |
| 929 | out.assign((const char*)&(sav6->sin6_addr), sizeof(in6_addr)); |
| 930 | std::cout << "ipv6 " << sizeof(in6_addr) << std::endl; |
| 931 | break; |
| 932 | } |
| 933 | } |
| 934 | } |
| 935 | |
| 936 | bool Socket::Connect(const std::string& host, int _port, const std::string& lastSuccessAddress, int timeoutSecondsPerConnect) |
| 937 | { |