xref: /openbsd-src/lib/libc/sys/listen.2 (revision ec5cd23ef093063387ec1273d0c19047daa9c801)
1.\"	$OpenBSD: listen.2,v 1.15 2015/09/10 17:55:21 schwarze Exp $
2.\"	$NetBSD: listen.2,v 1.7 1996/02/16 20:38:45 phil Exp $
3.\"
4.\" Copyright (c) 1983, 1991, 1993
5.\"	The Regents of the University of California.  All rights reserved.
6.\"
7.\" Redistribution and use in source and binary forms, with or without
8.\" modification, are permitted provided that the following conditions
9.\" are met:
10.\" 1. Redistributions of source code must retain the above copyright
11.\"    notice, this list of conditions and the following disclaimer.
12.\" 2. Redistributions in binary form must reproduce the above copyright
13.\"    notice, this list of conditions and the following disclaimer in the
14.\"    documentation and/or other materials provided with the distribution.
15.\" 3. Neither the name of the University nor the names of its contributors
16.\"    may be used to endorse or promote products derived from this software
17.\"    without specific prior written permission.
18.\"
19.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29.\" SUCH DAMAGE.
30.\"
31.\"     @(#)listen.2	8.2 (Berkeley) 12/11/93
32.\"
33.Dd $Mdocdate: September 10 2015 $
34.Dt LISTEN 2
35.Os
36.Sh NAME
37.Nm listen
38.Nd listen for connections on a socket
39.Sh SYNOPSIS
40.In sys/socket.h
41.Ft int
42.Fn listen "int s" "int backlog"
43.Sh DESCRIPTION
44To accept connections, a socket
45is first created with
46.Xr socket 2 ,
47a willingness to accept incoming connections and
48a queue limit for incoming connections are specified with
49.Fn listen ,
50and then the connections are
51accepted with
52.Xr accept 2 .
53The
54.Fn listen
55call applies only to sockets of type
56.Dv SOCK_STREAM
57or
58.Dv SOCK_SEQPACKET .
59.Pp
60The
61.Fa backlog
62parameter defines the maximum length the queue of
63pending connections may grow to.
64If a connection
65request arrives with the queue full the client may
66receive an error with an indication of
67.Er ECONNREFUSED ,
68or, if the underlying protocol supports retransmission,
69the request may be ignored so that retries may succeed.
70.Sh RETURN VALUES
71.Rv -std
72.Sh ERRORS
73.Fn listen
74will fail if:
75.Bl -tag -width Er
76.It Bq Er EBADF
77The argument
78.Fa s
79is not a valid descriptor.
80.It Bq Er ENOTSOCK
81The argument
82.Fa s
83is not a socket.
84.It Bq Er EOPNOTSUPP
85The socket is not of a type that supports the operation
86.Fn listen .
87.It Bq Er EINVAL
88The socket is already connected.
89.El
90.Sh SEE ALSO
91.Xr accept 2 ,
92.Xr connect 2 ,
93.Xr socket 2 ,
94.Xr sysctl 8
95.Sh STANDARDS
96The
97.Fn listen
98function conforms to
99.St -p1003.1-2008 .
100.Sh HISTORY
101The
102.Fn listen
103system call first appeared in
104.Bx 4.1c .
105.Sh BUGS
106The
107.Fa backlog
108is currently limited (silently) to the value of the kern.somaxconn
109sysctl, which defaults to 128.
110