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"
This commit is contained in:
parent
43b0ef8114
commit
0c927cdd8e
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=170548
@ -130,6 +130,7 @@ struct in_addr {
|
|||||||
#define inet_cidr_ntop __inet_cidr_ntop
|
#define inet_cidr_ntop __inet_cidr_ntop
|
||||||
#define inet_cidr_pton __inet_cidr_pton
|
#define inet_cidr_pton __inet_cidr_pton
|
||||||
#define inet_ntoa __inet_ntoa
|
#define inet_ntoa __inet_ntoa
|
||||||
|
#define inet_ntoa_r __inet_ntoa_r
|
||||||
#define inet_pton __inet_pton
|
#define inet_pton __inet_pton
|
||||||
#define inet_ntop __inet_ntop
|
#define inet_ntop __inet_ntop
|
||||||
#define inet_nsap_addr __inet_nsap_addr
|
#define inet_nsap_addr __inet_nsap_addr
|
||||||
@ -147,6 +148,7 @@ uint16_t ntohs(uint16_t);
|
|||||||
|
|
||||||
in_addr_t inet_addr(const char *);
|
in_addr_t inet_addr(const char *);
|
||||||
/*const*/ char *inet_ntoa(struct in_addr);
|
/*const*/ char *inet_ntoa(struct in_addr);
|
||||||
|
char *inet_ntoa_r(struct in_addr, char *buf);
|
||||||
const char *inet_ntop(int, const void * __restrict, char * __restrict,
|
const char *inet_ntop(int, const void * __restrict, char * __restrict,
|
||||||
socklen_t);
|
socklen_t);
|
||||||
int inet_pton(int, const char * __restrict, void * __restrict);
|
int inet_pton(int, const char * __restrict, void * __restrict);
|
||||||
|
@ -25,6 +25,8 @@ FBSD_1.0 {
|
|||||||
inet_network;
|
inet_network;
|
||||||
__inet_ntoa;
|
__inet_ntoa;
|
||||||
inet_ntoa;
|
inet_ntoa;
|
||||||
|
__inet_ntoa_r;
|
||||||
|
inet_ntoa_r;
|
||||||
__inet_ntop;
|
__inet_ntop;
|
||||||
inet_ntop;
|
inet_ntop;
|
||||||
__inet_pton;
|
__inet_pton;
|
||||||
|
@ -59,11 +59,19 @@ inet_ntoa(struct in_addr in) {
|
|||||||
return (ret);
|
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,
|
* Weak aliases for applications that use certain private entry points,
|
||||||
* and fail to include <arpa/inet.h>.
|
* and fail to include <arpa/inet.h>.
|
||||||
*/
|
*/
|
||||||
#undef inet_ntoa
|
#undef inet_ntoa
|
||||||
__weak_reference(__inet_ntoa, inet_ntoa);
|
__weak_reference(__inet_ntoa, inet_ntoa);
|
||||||
|
__weak_reference(__inet_ntoa_r, inet_ntoa_r);
|
||||||
|
|
||||||
/*! \file */
|
/*! \file */
|
||||||
|
@ -80,7 +80,7 @@ MLINKS+=if_indextoname.3 if_nametoindex.3 if_indextoname.3 if_nameindex.3 \
|
|||||||
if_indextoname.3 if_freenameindex.3
|
if_indextoname.3 if_freenameindex.3
|
||||||
MLINKS+=inet.3 addr.3 inet.3 inet_addr.3 inet.3 inet_aton.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_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 inet_ntop.3 inet.3 inet_pton.3 \
|
||||||
inet.3 network.3 inet.3 ntoa.3
|
inet.3 network.3 inet.3 ntoa.3
|
||||||
MLINKS+= sctp_send.3 sctp_sendx.3
|
MLINKS+= sctp_send.3 sctp_sendx.3
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
.\" From: @(#)inet.3 8.1 (Berkeley) 6/4/93
|
.\" From: @(#)inet.3 8.1 (Berkeley) 6/4/93
|
||||||
.\" $FreeBSD$
|
.\" $FreeBSD$
|
||||||
.\"
|
.\"
|
||||||
.Dd March 21, 2007
|
.Dd June 11, 2007
|
||||||
.Dt INET 3
|
.Dt INET 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -36,6 +36,7 @@
|
|||||||
.Nm inet_addr ,
|
.Nm inet_addr ,
|
||||||
.Nm inet_network ,
|
.Nm inet_network ,
|
||||||
.Nm inet_ntoa ,
|
.Nm inet_ntoa ,
|
||||||
|
.Nm inet_ntoa_r ,
|
||||||
.Nm inet_ntop ,
|
.Nm inet_ntop ,
|
||||||
.Nm inet_pton ,
|
.Nm inet_pton ,
|
||||||
.Nm inet_makeaddr ,
|
.Nm inet_makeaddr ,
|
||||||
@ -57,6 +58,11 @@
|
|||||||
.Fn inet_network "const char *cp"
|
.Fn inet_network "const char *cp"
|
||||||
.Ft char *
|
.Ft char *
|
||||||
.Fn inet_ntoa "struct in_addr in"
|
.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 *
|
.Ft const char *
|
||||||
.Fo inet_ntop
|
.Fo inet_ntop
|
||||||
.Fa "int af"
|
.Fa "int af"
|
||||||
@ -147,6 +153,11 @@ string representing the address in
|
|||||||
.Ql .\&
|
.Ql .\&
|
||||||
notation.
|
notation.
|
||||||
The routine
|
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
|
.Fn inet_makeaddr
|
||||||
takes an Internet network number and a local
|
takes an Internet network number and a local
|
||||||
network address and constructs an Internet address
|
network address and constructs an Internet address
|
||||||
|
Loading…
Reference in New Issue
Block a user