mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
socket/option.c: inet_ntop
* ext/socket/option.c, ext/socket/rubysocket.h (inet_ntop): share the fallback definition. [ruby-core:76646] [Bug #12645] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
f65180025b
commit
aa8e9c63ad
4 changed files with 14 additions and 23 deletions
|
@ -1,3 +1,8 @@
|
|||
Tue Aug 2 12:37:00 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* ext/socket/option.c, ext/socket/rubysocket.h (inet_ntop): share
|
||||
the fallback definition. [ruby-core:76646] [Bug #12645]
|
||||
|
||||
Tue Aug 2 04:07:29 2016 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||
|
||||
* win32/win32.c (set_pioinfo_extra): use more reliable way to search
|
||||
|
|
|
@ -117,24 +117,6 @@ static struct afd {
|
|||
#define ENI_FAMILY 5
|
||||
#define ENI_SALEN 6
|
||||
|
||||
#ifndef HAVE_INET_NTOP
|
||||
static const char *
|
||||
inet_ntop(int af, const void *addr, char *numaddr, size_t numaddr_len)
|
||||
{
|
||||
#ifdef HAVE_INET_NTOA
|
||||
struct in_addr in;
|
||||
memcpy(&in.s_addr, addr, sizeof(in.s_addr));
|
||||
snprintf(numaddr, numaddr_len, "%s", inet_ntoa(in));
|
||||
#else
|
||||
unsigned long x = ntohl(*(unsigned long*)addr);
|
||||
snprintf(numaddr, numaddr_len, "%d.%d.%d.%d",
|
||||
(int) (x>>24) & 0xff, (int) (x>>16) & 0xff,
|
||||
(int) (x>> 8) & 0xff, (int) (x>> 0) & 0xff);
|
||||
#endif
|
||||
return numaddr;
|
||||
}
|
||||
#endif
|
||||
|
||||
int
|
||||
getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, socklen_t hostlen, char *serv, socklen_t servlen, int flags)
|
||||
{
|
||||
|
|
|
@ -645,7 +645,7 @@ inspect_timeval_as_interval(int level, int optname, VALUE data, VALUE ret)
|
|||
*/
|
||||
|
||||
#if !defined HAVE_INET_NTOP && ! defined _WIN32
|
||||
static const char *
|
||||
const char *
|
||||
inet_ntop(int af, const void *addr, char *numaddr, size_t numaddr_len)
|
||||
{
|
||||
#ifdef HAVE_INET_NTOA
|
||||
|
@ -660,10 +660,6 @@ inet_ntop(int af, const void *addr, char *numaddr, size_t numaddr_len)
|
|||
#endif
|
||||
return numaddr;
|
||||
}
|
||||
#elif defined __MINGW32__
|
||||
# define inet_ntop(f,a,n,l) rb_w32_inet_ntop(f,a,n,l)
|
||||
#elif defined _MSC_VER && RUBY_MSVCRT_VERSION < 90
|
||||
const char *WSAAPI inet_ntop(int, const void *, char *, size_t);
|
||||
#endif
|
||||
|
||||
/* Although the buffer size needed depends on the prefixes, "%u" may generate "4294967295". */
|
||||
|
|
|
@ -430,4 +430,12 @@ static inline void rsock_maybe_wait_fd(int fd) { }
|
|||
# define MSG_DONTWAIT_RELIABLE 0
|
||||
#endif
|
||||
|
||||
#if !defined HAVE_INET_NTOP && ! defined _WIN32
|
||||
const char *inet_ntop(int, const void *, char *, size_t);
|
||||
#elif defined __MINGW32__
|
||||
# define inet_ntop(f,a,n,l) rb_w32_inet_ntop(f,a,n,l)
|
||||
#elif defined _MSC_VER && RUBY_MSVCRT_VERSION < 90
|
||||
const char *WSAAPI inet_ntop(int, const void *, char *, size_t);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue