xref: /freebsd/lib/libsys/getpeername.2 (revision 8269e7673cf033aba67dab8264fe719920c70f87)
1*8269e767SBrooks Davis.\" Copyright (c) 1983, 1991, 1993
2*8269e767SBrooks Davis.\"	The Regents of the University of California.  All rights reserved.
3*8269e767SBrooks Davis.\"
4*8269e767SBrooks Davis.\" Redistribution and use in source and binary forms, with or without
5*8269e767SBrooks Davis.\" modification, are permitted provided that the following conditions
6*8269e767SBrooks Davis.\" are met:
7*8269e767SBrooks Davis.\" 1. Redistributions of source code must retain the above copyright
8*8269e767SBrooks Davis.\"    notice, this list of conditions and the following disclaimer.
9*8269e767SBrooks Davis.\" 2. Redistributions in binary form must reproduce the above copyright
10*8269e767SBrooks Davis.\"    notice, this list of conditions and the following disclaimer in the
11*8269e767SBrooks Davis.\"    documentation and/or other materials provided with the distribution.
12*8269e767SBrooks Davis.\" 3. Neither the name of the University nor the names of its contributors
13*8269e767SBrooks Davis.\"    may be used to endorse or promote products derived from this software
14*8269e767SBrooks Davis.\"    without specific prior written permission.
15*8269e767SBrooks Davis.\"
16*8269e767SBrooks Davis.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17*8269e767SBrooks Davis.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18*8269e767SBrooks Davis.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19*8269e767SBrooks Davis.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20*8269e767SBrooks Davis.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21*8269e767SBrooks Davis.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22*8269e767SBrooks Davis.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23*8269e767SBrooks Davis.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24*8269e767SBrooks Davis.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25*8269e767SBrooks Davis.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26*8269e767SBrooks Davis.\" SUCH DAMAGE.
27*8269e767SBrooks Davis.\"
28*8269e767SBrooks Davis.Dd June 4, 1993
29*8269e767SBrooks Davis.Dt GETPEERNAME 2
30*8269e767SBrooks Davis.Os
31*8269e767SBrooks Davis.Sh NAME
32*8269e767SBrooks Davis.Nm getpeername
33*8269e767SBrooks Davis.Nd get name of connected peer
34*8269e767SBrooks Davis.Sh LIBRARY
35*8269e767SBrooks Davis.Lb libc
36*8269e767SBrooks Davis.Sh SYNOPSIS
37*8269e767SBrooks Davis.In sys/types.h
38*8269e767SBrooks Davis.In sys/socket.h
39*8269e767SBrooks Davis.Ft int
40*8269e767SBrooks Davis.Fn getpeername "int s" "struct sockaddr * restrict name" "socklen_t * restrict namelen"
41*8269e767SBrooks Davis.Sh DESCRIPTION
42*8269e767SBrooks DavisThe
43*8269e767SBrooks Davis.Fn getpeername
44*8269e767SBrooks Davissystem call
45*8269e767SBrooks Davisreturns the name of the peer connected to
46*8269e767SBrooks Davissocket
47*8269e767SBrooks Davis.Fa s .
48*8269e767SBrooks DavisThe
49*8269e767SBrooks Davis.Fa namelen
50*8269e767SBrooks Davisargument should be initialized to indicate
51*8269e767SBrooks Davisthe amount of space pointed to by
52*8269e767SBrooks Davis.Fa name .
53*8269e767SBrooks DavisOn return it contains the actual size of the name
54*8269e767SBrooks Davisreturned (in bytes).
55*8269e767SBrooks DavisThe name is truncated if the buffer provided is too small.
56*8269e767SBrooks Davis.Sh RETURN VALUES
57*8269e767SBrooks Davis.Rv -std getpeername
58*8269e767SBrooks Davis.Sh ERRORS
59*8269e767SBrooks DavisThe call succeeds unless:
60*8269e767SBrooks Davis.Bl -tag -width Er
61*8269e767SBrooks Davis.It Bq Er EBADF
62*8269e767SBrooks DavisThe argument
63*8269e767SBrooks Davis.Fa s
64*8269e767SBrooks Davisis not a valid descriptor.
65*8269e767SBrooks Davis.It Bq Er ECONNRESET
66*8269e767SBrooks DavisThe connection has been reset by the peer.
67*8269e767SBrooks Davis.It Bq Er EINVAL
68*8269e767SBrooks DavisThe value of the
69*8269e767SBrooks Davis.Fa namelen
70*8269e767SBrooks Davisargument is not valid.
71*8269e767SBrooks Davis.It Bq Er ENOTSOCK
72*8269e767SBrooks DavisThe argument
73*8269e767SBrooks Davis.Fa s
74*8269e767SBrooks Davisis a file, not a socket.
75*8269e767SBrooks Davis.It Bq Er ENOTCONN
76*8269e767SBrooks DavisThe socket is not connected.
77*8269e767SBrooks Davis.It Bq Er ENOBUFS
78*8269e767SBrooks DavisInsufficient resources were available in the system
79*8269e767SBrooks Davisto perform the operation.
80*8269e767SBrooks Davis.It Bq Er EFAULT
81*8269e767SBrooks DavisThe
82*8269e767SBrooks Davis.Fa name
83*8269e767SBrooks Davisargument points to memory not in a valid part of the
84*8269e767SBrooks Davisprocess address space.
85*8269e767SBrooks Davis.El
86*8269e767SBrooks Davis.Sh SEE ALSO
87*8269e767SBrooks Davis.Xr accept 2 ,
88*8269e767SBrooks Davis.Xr bind 2 ,
89*8269e767SBrooks Davis.Xr getsockname 2 ,
90*8269e767SBrooks Davis.Xr socket 2
91*8269e767SBrooks Davis.Sh HISTORY
92*8269e767SBrooks DavisThe
93*8269e767SBrooks Davis.Fn getpeername
94*8269e767SBrooks Davissystem call appeared in
95*8269e767SBrooks Davis.Bx 4.2 .
96