mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* include/ruby/win32.h, win32/win32.c: add rb_w32_inet_ntop.
inet_ntop's minimum supported client is Vista. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b32992e84c
commit
fb672259d9
3 changed files with 25 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
Tue Feb 1 02:28:14 2011 Masaya Tarui <tarui@ruby-lnag.org>
|
||||
|
||||
* include/ruby/win32.h, win32/win32.c: add rb_w32_inet_ntop.
|
||||
inet_ntop's minimum supported client is Vista.
|
||||
|
||||
Tue Feb 1 00:10:30 2011 NARUSE, Yui <naruse@ruby-lang.org>
|
||||
|
||||
* lib/benchmark.rb: fix benchmarck to work with current ruby.
|
||||
|
|
|
@ -267,6 +267,7 @@ extern int rb_w32_urename(const char *, const char *);
|
|||
extern char **rb_w32_get_environ(void);
|
||||
extern void rb_w32_free_environ(char **);
|
||||
extern int rb_w32_map_errno(DWORD);
|
||||
extern char * WSAAPI rb_w32_inet_ntop(int,void *,char *,size_t);
|
||||
|
||||
extern int chown(const char *, int, int);
|
||||
extern int rb_w32_uchown(const char *, int, int);
|
||||
|
@ -542,6 +543,9 @@ extern char *rb_w32_strerror(int);
|
|||
#define FD_ISSET(f, s) rb_w32_fdisset(f, s)
|
||||
|
||||
#ifdef RUBY_EXPORT
|
||||
#undef inet_ntop
|
||||
#define inet_ntop(f,a,n,l) rb_w32_inet_ntop(f,a,n,l)
|
||||
|
||||
#undef accept
|
||||
#define accept(s, a, l) rb_w32_accept(s, a, l)
|
||||
|
||||
|
|
|
@ -5687,3 +5687,19 @@ signbit(double x)
|
|||
return *ip < 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
char * WSAAPI
|
||||
rb_w32_inet_ntop(int af, void *addr, char *numaddr, size_t numaddr_len)
|
||||
{
|
||||
typedef char *(WSAAPI inet_ntop_t)(int, void *, char *, size_t);
|
||||
inet_ntop_t *pInetNtop;
|
||||
pInetNtop = (inet_ntop_t *)get_proc_address("ws2_32", "inet_ntop", NULL);
|
||||
if(pInetNtop){
|
||||
return pInetNtop(af,addr,numaddr,numaddr_len);
|
||||
}else{
|
||||
struct in_addr in;
|
||||
memcpy(&in.s_addr, addr, sizeof(in.s_addr));
|
||||
snprintf(numaddr, numaddr_len, "%s", inet_ntoa(in));
|
||||
}
|
||||
return numaddr;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue