| Index: net/base/address_list.cc
|
| ===================================================================
|
| --- net/base/address_list.cc (revision 21052)
|
| +++ net/base/address_list.cc (working copy)
|
| @@ -127,6 +127,25 @@
|
| data_ = NULL;
|
| }
|
|
|
| +// static
|
| +AddressList AddressList::CreateIPv6Address(unsigned char data[16]) {
|
| + struct addrinfo* ai = new struct addrinfo;
|
| + memset(ai, 0, sizeof(struct addrinfo));
|
| +
|
| + ai->ai_family = AF_INET6;
|
| + ai->ai_socktype = SOCK_STREAM;
|
| + ai->ai_addrlen = sizeof(sockaddr_in6);
|
| +
|
| + struct sockaddr_in6* addr6 = new sockaddr_in6;
|
| + memset(addr6, 0, sizeof(sockaddr_in6));
|
| +
|
| + ai->ai_addr = reinterpret_cast<sockaddr*>(addr6);
|
| + addr6->sin6_family = AF_INET6;
|
| + memcpy(&addr6->sin6_addr, data, 16);
|
| +
|
| + return AddressList(new Data(ai, false /*is_system_created*/));
|
| +}
|
| +
|
| AddressList::Data::~Data() {
|
| // Call either freeaddrinfo(head), or FreeMyAddrinfo(head), depending who
|
| // created the data.
|
|
|