summaryrefslogtreecommitdiff
path: root/src/lib/libc/net/getservent.3
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libc/net/getservent.3')
-rw-r--r--src/lib/libc/net/getservent.359
1 files changed, 54 insertions, 5 deletions
diff --git a/src/lib/libc/net/getservent.3 b/src/lib/libc/net/getservent.3
index af75f5037b..f5294b8f70 100644
--- a/src/lib/libc/net/getservent.3
+++ b/src/lib/libc/net/getservent.3
@@ -1,4 +1,4 @@
1.\" $OpenBSD: getservent.3,v 1.13 2003/12/30 10:35:36 jmc Exp $ 1.\" $OpenBSD: getservent.3,v 1.14 2004/10/17 20:24:23 millert Exp $
2.\" 2.\"
3.\" Copyright (c) 1983, 1991, 1993 3.\" Copyright (c) 1983, 1991, 1993
4.\" The Regents of the University of California. All rights reserved. 4.\" The Regents of the University of California. All rights reserved.
@@ -27,28 +27,43 @@
27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28.\" SUCH DAMAGE. 28.\" SUCH DAMAGE.
29.\" 29.\"
30.Dd January 12, 1994 30.Dd October 13, 2004
31.Dt GETSERVENT 3 31.Dt GETSERVENT 3
32.Os 32.Os
33.Sh NAME 33.Sh NAME
34.Nm getservent , 34.Nm getservent ,
35.Nm getservent_r ,
35.Nm getservbyport , 36.Nm getservbyport ,
37.Nm getservbyport_r ,
36.Nm getservbyname , 38.Nm getservbyname ,
39.Nm getservbyname_r ,
37.Nm setservent , 40.Nm setservent ,
38.Nm endservent 41.Nm setservent_r ,
42.Nm endservent ,
43.Nm endservent_r
39.Nd get service entry 44.Nd get service entry
40.Sh SYNOPSIS 45.Sh SYNOPSIS
41.Fd #include <netdb.h> 46.Fd #include <netdb.h>
42.Ft struct servent * 47.Ft struct servent *
43.Fn getservent "void" 48.Fn getservent "void"
44.Ft struct servent * 49.Ft struct servent *
50.Fn getservent_r "struct servent *servent" "struct servent_data *servent_data"
51.Ft struct servent *
45.Fn getservbyname "const char *name" "const char *proto" 52.Fn getservbyname "const char *name" "const char *proto"
46.Ft struct servent * 53.Ft struct servent *
54.Fn getservbyname_r "const char *name" "const char *proto" "struct servent *servent" "struct servent_data *servent_data"
55.Ft struct servent *
47.Fn getservbyport "int port" "const char *proto" 56.Fn getservbyport "int port" "const char *proto"
57.Ft struct servent *
58.Fn getservbyport_r "int port" "const char *proto" "struct servent *servent" "struct servent_data *servent_data"
48.Ft void 59.Ft void
49.Fn setservent "int stayopen" 60.Fn setservent "int stayopen"
50.Ft void 61.Ft void
62.Fn setservent_r "int stayopen" "struct servent_data *servent_data"
63.Ft void
51.Fn endservent "void" 64.Fn endservent "void"
65.Ft void
66.Fn endservent_r "struct servent_data *servent_data"
52.Sh DESCRIPTION 67.Sh DESCRIPTION
53The 68The
54.Fn getservent , 69.Fn getservent ,
@@ -110,6 +125,30 @@ is found, or until
110is encountered. 125is encountered.
111If a protocol name is also supplied (non-null), 126If a protocol name is also supplied (non-null),
112searches must also match the protocol. 127searches must also match the protocol.
128.Pp
129The
130.Fn getservent_r ,
131.Fn getservbyport_r ,
132.Fn getservbyname_r ,
133.Fn setservent_r ,
134and
135.Fn endservent_r
136functions are reentrant versions of the above functions that take a
137pointer to a
138.Fa servent_data
139structure which is used to store state information.
140The structure must be zero-filled before it is used
141and should be considered opaque for the sake of portability.
142.Pp
143The
144.Fn getservent_r ,
145.Fn getservbyport_r ,
146and
147.Fn getservbyname_r
148functions
149also take a pointer to a
150.Fa servent
151structure which is used to store the results of the database lookup.
113.Sh FILES 152.Sh FILES
114.Bl -tag -width /etc/services -compact 153.Bl -tag -width /etc/services -compact
115.It Pa /etc/services 154.It Pa /etc/services
@@ -130,8 +169,18 @@ The
130and 169and
131.Fn endservent 170.Fn endservent
132functions appeared in 171functions appeared in
172.Pp
133.Bx 4.2 . 173.Bx 4.2 .
174The
175.Fn getservent_r ,
176.Fn getservbyport_r ,
177.Fn getservbyname_r ,
178.Fn setservent_r ,
179and
180.Fn endservent_r
181functions appeared in
182.Ox 3.7 .
134.Sh BUGS 183.Sh BUGS
135These functions use static data storage; if the data is needed for future use, 184The non-reentrant functions use static data storage; if the data is needed
136it should be copied before any subsequent calls overwrite it. 185for future use, it should be copied before any subsequent calls overwrite it.
137Expecting port numbers to fit in a 32-bit quantity is probably naive. 186Expecting port numbers to fit in a 32-bit quantity is probably naive.