Chromium Code Reviews| Index: libraries/nacl-mounts/net/TcpSocket.cc |
| =================================================================== |
| --- libraries/nacl-mounts/net/TcpSocket.cc (revision 598) |
| +++ libraries/nacl-mounts/net/TcpSocket.cc (working copy) |
| @@ -9,6 +9,7 @@ |
| #include "../net/SocketSubSystem.h" |
| #include "ppapi/c/pp_errors.h" |
| #include "ppapi/cpp/module.h" |
| +#include "ppapi/cpp/private/net_address_private.h" |
| #include "../util/DebugPrint.h" |
| #include "../util/PthreadHelpers.h" |
| @@ -162,6 +163,27 @@ |
| } |
| } |
| +void TCPSocket::GetAddress(struct sockaddr* addr) { |
| + struct sockaddr_in* iaddr = (struct sockaddr_in*) addr; |
| + struct sockaddr_in6* iaddr6 = (struct sockaddr_in6*) addr; |
| + PP_NetAddress_Private netaddr; |
| + socket_->GetRemoteAddress(&netaddr); |
| + PP_NetAddressFamily_Private family = |
| + pp::NetAddressPrivate::GetFamily(netaddr); |
| + if (family == PP_NETADDRESSFAMILY_IPV4) |
| + iaddr->sin_family = AF_INET; |
| + else if (family == PP_NETADDRESSFAMILY_IPV6) |
|
Evgeniy Stepanov
2012/06/18 10:46:45
Please make it fail if address family is not one o
vissi
2012/06/18 10:56:44
Done.
|
| + iaddr->sin_family = AF_INET6; |
| + iaddr6->sin6_port = pp::NetAddressPrivate::GetPort(netaddr); |
| + if (family == PP_NETADDRESSFAMILY_IPV6) { |
| + pp::NetAddressPrivate::GetAddress( |
| + netaddr, &iaddr6->sin6_addr, sizeof(in6_addr)); |
| + } else { |
| + pp::NetAddressPrivate::GetAddress( |
| + netaddr, &iaddr->sin_addr, sizeof(in_addr)); |
| + } |
| +} |
| + |
| void TCPSocket::OnConnect(int32_t result, int32_t* pres) { |
| SimpleAutoLock lock(sys_->mutex()); |
| if (result == PP_OK) { |