diff options
author | delphij <delphij@FreeBSD.org> | 2007-06-11 07:21:21 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2007-06-11 07:21:21 +0000 |
commit | 0325fb6ca4e8ecfa891d252d9d442141ad32847b (patch) | |
tree | d64971ce8313ba1ded2f2e6067ba93c54bc1e7ec /lib/libc | |
parent | 219bfe35e701b456e351b70d8d9b05418b7057d8 (diff) | |
download | FreeBSD-src-0325fb6ca4e8ecfa891d252d9d442141ad32847b.zip FreeBSD-src-0325fb6ca4e8ecfa891d252d9d442141ad32847b.tar.gz |
Add inet_ntoa_r, a reentrant version of inet_ntoa. This is
available on a lot of platforms, as well as libkern for years.
Submitted by: "MQ"
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/inet/Symbol.map | 2 | ||||
-rw-r--r-- | lib/libc/inet/inet_ntoa.c | 8 | ||||
-rw-r--r-- | lib/libc/net/Makefile.inc | 2 | ||||
-rw-r--r-- | lib/libc/net/inet.3 | 13 |
4 files changed, 23 insertions, 2 deletions
diff --git a/lib/libc/inet/Symbol.map b/lib/libc/inet/Symbol.map index 13d1f47..f188b13 100644 --- a/lib/libc/inet/Symbol.map +++ b/lib/libc/inet/Symbol.map @@ -25,6 +25,8 @@ FBSD_1.0 { inet_network; __inet_ntoa; inet_ntoa; + __inet_ntoa_r; + inet_ntoa_r; __inet_ntop; inet_ntop; __inet_pton; diff --git a/lib/libc/inet/inet_ntoa.c b/lib/libc/inet/inet_ntoa.c index 7e29145..b75a983 100644 --- a/lib/libc/inet/inet_ntoa.c +++ b/lib/libc/inet/inet_ntoa.c @@ -59,11 +59,19 @@ inet_ntoa(struct in_addr in) { return (ret); } +char * +inet_ntoa_r(struct in_addr in, char *buf) +{ + (void) inet_ntop(AF_INET, &in, buf, sizeof("255.255.255.255")); + return (buf); +} + /* * Weak aliases for applications that use certain private entry points, * and fail to include <arpa/inet.h>. */ #undef inet_ntoa __weak_reference(__inet_ntoa, inet_ntoa); +__weak_reference(__inet_ntoa_r, inet_ntoa_r); /*! \file */ diff --git a/lib/libc/net/Makefile.inc b/lib/libc/net/Makefile.inc index b9abe0f..3592f50 100644 --- a/lib/libc/net/Makefile.inc +++ b/lib/libc/net/Makefile.inc @@ -80,7 +80,7 @@ MLINKS+=if_indextoname.3 if_nametoindex.3 if_indextoname.3 if_nameindex.3 \ if_indextoname.3 if_freenameindex.3 MLINKS+=inet.3 addr.3 inet.3 inet_addr.3 inet.3 inet_aton.3 \ inet.3 inet_lnaof.3 inet.3 inet_makeaddr.3 inet.3 inet_netof.3 \ - inet.3 inet_network.3 inet.3 inet_ntoa.3 \ + inet.3 inet_network.3 inet.3 inet_ntoa.3 inet.3 inet_ntoa_r.3\ inet.3 inet_ntop.3 inet.3 inet_pton.3 \ inet.3 network.3 inet.3 ntoa.3 MLINKS+= sctp_send.3 sctp_sendx.3 diff --git a/lib/libc/net/inet.3 b/lib/libc/net/inet.3 index d721d9e..d6428c9 100644 --- a/lib/libc/net/inet.3 +++ b/lib/libc/net/inet.3 @@ -28,7 +28,7 @@ .\" From: @(#)inet.3 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd March 21, 2007 +.Dd June 11, 2007 .Dt INET 3 .Os .Sh NAME @@ -36,6 +36,7 @@ .Nm inet_addr , .Nm inet_network , .Nm inet_ntoa , +.Nm inet_ntoa_r , .Nm inet_ntop , .Nm inet_pton , .Nm inet_makeaddr , @@ -57,6 +58,11 @@ .Fn inet_network "const char *cp" .Ft char * .Fn inet_ntoa "struct in_addr in" +.Ft char * +.Fo inet_ntoa_r +.Fa "struct in_addr in" +.Fa "char *buf" +.Fc .Ft const char * .Fo inet_ntop .Fa "int af" @@ -147,6 +153,11 @@ string representing the address in .Ql .\& notation. The routine +.Fn inet_ntoa_r +is the reentrant version of +.Fn inet_ntoa . +It requires a buffer large enough to contain an IPv4 address. +The routine .Fn inet_makeaddr takes an Internet network number and a local network address and constructs an Internet address |