pupnp (libupnp) snapshot from SourceForge: git clone git://pupnp.git.sourceforge...
[igd2-for-linux:pandonghui1211s-igd2-for-linux.git] / pupnp_branch-1.6.x / upnp / src / inc / inet_pton.h
1
2
3 #ifndef INET_PTON
4 #define INET_PTON
5
6
7 #ifdef WIN32
8
9
10 #include "unixutil.h"
11
12
13 #include <errno.h>
14 #include <stdio.h>
15 #include <string.h>
16
17
18 /*!
19  * \file
20  *
21  * \author: Paul Vixie, 1996.
22  *
23  * \brief Network support routines missing in WIN32.
24  *
25  * \warning Don't even consider trying to compile this on a system where
26  * sizeof(int) < 4.  sizeof(int) 4 is fine; all the world's not a VAX.
27  *
28  */
29
30 /*!
31  * \brief format an IPv4 address
32  *
33  * \return `dst' (as a const)
34  *
35  * \note
36  *      \li (1) uses no statics
37  *      \li (2) takes a u_char* not an in_addr as input
38  *
39  */
40 extern const char *inet_ntop4(const u_char src, char *dst, socklen_t size);
41
42
43 /*!
44  * \brief convert IPv6 binary address into presentation (printable) format
45  */
46 #ifdef INET_IPV6
47 extern const char *inet_ntop6(const u_char *src, char *dst, socklen_t size);
48 #endif /* INET_IPV6 */
49
50
51 /*!
52  * \brief like inet_aton() but without all the hexadecimal and shorthand.
53  *
54  * \return 1 if `src' is a valid dotted quad, else 0.
55  *
56  * \note does not touch `dst' unless it's returning 1.
57  */
58 extern inet_pton4(const char *src,u_char *dst);
59
60
61 /*!
62  * \brief convert presentation level address to network order binary form.
63  *
64  * \return 1 if `src' is a valid [RFC1884 2.2] address, else 0.
65  *
66  * \note
67  *      \li (1) does not touch `dst' unless it's returning 1.
68  *      \li (2) :: in a full address is silently ignored.
69  */
70 #ifdef INET_IPV6
71 extern int inet_pton6(const char *src, u_char *dst);
72 #endif /* INET_IPV6 */
73
74
75 /*!
76  * \brief convert a network format address to presentation format.
77  *
78  * \return
79  *      pointer to presentation format address (`dst'), or NULL (see errno).
80  */
81 extern const char *inet_ntop(int af,const void *src,char *dst,socklen_t size);
82
83
84 /*!
85  * \brief convert from presentation format (which usually means ASCII printable)
86  * to network format (which is usually some kind of binary format).
87  *
88  * \return
89  *      \li 1 if the address was valid for the specified address family
90  *      \li 0 if the address wasn't valid (`dst' is untouched in this case)
91  *      \li -1 if some other error occurred (`dst' is untouched in this case, too)
92  */
93 extern int inet_pton(int af,const char *src,void *dst);
94
95
96 #endif /* WIN32 */
97
98
99 #endif /* INET_PTON */
100