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>
|
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
|
* 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_FAMILY 5
|
||||||
#define ENI_SALEN 6
|
#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
|
int
|
||||||
getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, socklen_t hostlen, char *serv, socklen_t servlen, int flags)
|
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
|
#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)
|
inet_ntop(int af, const void *addr, char *numaddr, size_t numaddr_len)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_INET_NTOA
|
#ifdef HAVE_INET_NTOA
|
||||||
|
@ -660,10 +660,6 @@ inet_ntop(int af, const void *addr, char *numaddr, size_t numaddr_len)
|
||||||
#endif
|
#endif
|
||||||
return numaddr;
|
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
|
#endif
|
||||||
|
|
||||||
/* Although the buffer size needed depends on the prefixes, "%u" may generate "4294967295". */
|
/* 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
|
# define MSG_DONTWAIT_RELIABLE 0
|
||||||
#endif
|
#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
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue