1 /* Copyright (C) 1997, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3 
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8 
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13 
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, see
16    <http://www.gnu.org/licenses/>.  */
17 
18 #ifndef _ARPA_INET_H
19 #define	_ARPA_INET_H	1
20 
21 #include <features.h>
22 #include <netinet/in.h>		/* To define `struct in_addr'.  */
23 
24 /* Type for length arguments in socket calls.  */
25 #ifndef __socklen_t_defined
26 typedef __socklen_t socklen_t;
27 # define __socklen_t_defined
28 #endif
29 
30 __BEGIN_DECLS
31 
32 /* Convert Internet host address from numbers-and-dots notation in CP
33    into binary data in network byte order.  */
34 extern in_addr_t inet_addr (const char *__cp) __THROW;
35 libc_hidden_proto(inet_addr)
36 
37 /* Return the local host address part of the Internet address in IN.  */
38 extern in_addr_t inet_lnaof (struct in_addr __in) __THROW;
39 
40 /* Make Internet host address in network byte order by combining the
41    network number NET with the local address HOST.  */
42 extern struct in_addr inet_makeaddr (in_addr_t __net, in_addr_t __host)
43      __THROW;
44 libc_hidden_proto(inet_makeaddr)
45 
46 /* Return network number part of the Internet address IN.  */
47 extern in_addr_t inet_netof (struct in_addr __in) __THROW;
48 libc_hidden_proto(inet_netof)
49 
50 /* Extract the network number in network byte order from the address
51    in numbers-and-dots natation starting at CP.  */
52 extern in_addr_t inet_network (const char *__cp) __THROW;
53 libc_hidden_proto(inet_network)
54 
55 /* Convert Internet number in IN to ASCII representation.  The return value
56    is a pointer to an internal array containing the string.  */
57 extern char *inet_ntoa (struct in_addr __in) __THROW;
58 libc_hidden_proto(inet_ntoa)
59 #ifdef __UCLIBC__
60 /* Recursion-safe flavor */
61 extern char *inet_ntoa_r (struct in_addr __in, char *__buf) __THROW;
62 #endif
63 
64 /* Convert from presentation format of an Internet number in buffer
65    starting at CP to the binary network format and store result for
66    interface type AF in buffer starting at BUF.  */
67 extern int inet_pton (int __af, const char *__restrict __cp,
68 		      void *__restrict __buf) __THROW;
69 libc_hidden_proto(inet_pton)
70 
71 /* Convert a Internet address in binary network format for interface
72    type AF in buffer starting at CP to presentation form and place
73    result in buffer of length LEN astarting at BUF.  */
74 extern const char *inet_ntop (int __af, const void *__restrict __cp,
75 				char *__restrict __buf, socklen_t __len)
76      __THROW;
77 libc_hidden_proto(inet_ntop)
78 
79 
80 /* The following functions are not part of XNS 5.2.  */
81 #ifdef __USE_MISC
82 /* Convert Internet host address from numbers-and-dots notation in CP
83    into binary data and store the result in the structure INP.  */
84 extern int inet_aton (const char *__cp, struct in_addr *__inp) __THROW;
85 libc_hidden_proto(inet_aton)
86 
87 #if 0
88 /* Format a network number NET into presentation format and place result
89    in buffer starting at BUF with length of LEN bytes.  */
90 extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) __THROW;
91 
92 /* Convert network number for interface type AF in buffer starting at
93    CP to presentation format.  The result will specifiy BITS bits of
94    the number.  */
95 extern char *inet_net_ntop (int __af, const void *__cp, int __bits,
96 			    char *__buf, size_t __len) __THROW;
97 
98 /* Convert network number for interface type AF from presentation in
99    buffer starting at CP to network format and store result int
100    buffer starting at BUF of size LEN.  */
101 extern int inet_net_pton (int __af, const char *__cp,
102 			  void *__buf, size_t __len) __THROW;
103 
104 /* Convert ASCII representation in hexadecimal form of the Internet
105    address to binary form and place result in buffer of length LEN
106    starting at BUF.  */
107 extern unsigned int inet_nsap_addr (const char *__cp,
108 				    unsigned char *__buf, int __len) __THROW;
109 
110 /* Convert internet address in binary form in LEN bytes starting at CP
111    a presentation form and place result in BUF.  */
112 extern char *inet_nsap_ntoa (int __len, const unsigned char *__cp,
113 			     char *__buf) __THROW;
114 #endif
115 #endif
116 
117 __END_DECLS
118 
119 #endif /* arpa/inet.h */
120