diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-08-20 21:53:48 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-08-20 21:53:48 +0900 |
| commit | 3c73b6e76746e03f21ef401f17180a296b4a66d3 (patch) | |
| tree | 80f001ff6de4d14ff853cfb4f1bc58a4332b9f51 /src/SocketCore.cc | |
| parent | af46293ef93a056bcd06f4b8f973fe5aa395d20f (diff) | |
Eliminated inet_ntoa and inet_ntop. Use getnameinfo() instead.
Diffstat (limited to 'src/SocketCore.cc')
| -rw-r--r-- | src/SocketCore.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/SocketCore.cc b/src/SocketCore.cc index bd724240..f6ba3f35 100644 --- a/src/SocketCore.cc +++ b/src/SocketCore.cc @@ -1237,4 +1237,27 @@ int callGetaddrinfo return getaddrinfo(host, service, &hints, resPtr); } +int inetNtop(int af, const void* src, char* dst, socklen_t size) +{ + int s; + if(af == AF_INET) { + sockaddr_in sa; + memset(&sa, 0, sizeof(sa)); + sa.sin_family = AF_INET; + memcpy(&sa.sin_addr, src, sizeof(in_addr)); + s = getnameinfo(reinterpret_cast<const sockaddr*>(&sa), sizeof(sa), + dst, size, 0, 0, NI_NUMERICHOST); + } else if(af == AF_INET6) { + sockaddr_in6 sa; + memset(&sa, 0, sizeof(sa)); + sa.sin6_family = AF_INET6; + memcpy(&sa.sin6_addr, src, sizeof(in6_addr)); + s = getnameinfo(reinterpret_cast<const sockaddr*>(&sa), sizeof(sa), + dst, size, 0, 0, NI_NUMERICHOST); + } else { + s = EAI_FAMILY; + } + return s; +} + } // namespace aria2 |
