1.\"
2.\" This file and its contents are supplied under the terms of the
3.\" Common Development and Distribution License ("CDDL"), version 1.0.
4.\" You may only use this file in accordance with the terms of version
5.\" 1.0 of the CDDL.
6.\"
7.\" A full copy of the text of the CDDL should have accompanied this
8.\" source.  A copy of the CDDL is also available via the Internet at
9.\" http://www.illumos.org/license/CDDL.
10.\"
11.\"
12.\" Copyright 2015 Joyent, Inc.
13.\"
14.Dd November 27, 2023
15.Dt PR_GETSOCKNAME 3PROC
16.Os
17.Sh NAME
18.Nm pr_getsockname
19.Nd inject getsockname library call into victim process
20.Sh LIBRARY
21.Lb libproc
22.Sh SYNOPSIS
23.In libproc.h
24.Ft int
25.Fo pr_getsockname
26.Fa "struct ps_prochandle *P"
27.Fa "int sock"
28.Fa "struct sockaddr *name"
29.Fa "socklen_t *namelen"
30.Fc
31.Sh DESCRIPTION
32The
33.Fn pr_getsockname
34function injects the
35.Xr getsockname 3SOCKET
36library call into the target process
37.Fa P
38by means of the agent LWP.
39If the process handle
40.Fa P
41is the value
42.Dv NULL
43then this will be equivalent to calling
44.Xr getsockname 3SOCKET
45on the currently running process.
46.Pp
47The arguments
48.Fa sock ,
49.Fa name ,
50and
51.Fa namelen
52have the same meaning as in
53.Xr getsockname 3SOCKET .
54See
55.Xr getsockname 3SOCKET
56for the full description and purpose of the
57.Sy getsockname
58library call and its arguments.
59.Pp
60The
61.Fn pr_getsockname
62function only works on active processes.
63Process handles that correspond to core files, zombie processes, or ELF objects
64do not support library call injection.
65.Sh RETURN VALUES
66Upon successful completion, the
67.Fn pr_getsockname
68function's return value is that described in
69.Xr getsockname 3SOCKET .
70Otherwise,
71.Sy -1
72is returned and
73.Sy errno
74is set to
75.Er ENOSYS
76to indicate that the library call could not be injected.
77.Sh ERRORS
78For the full list of errors see the
79.Sy ERRORS
80section in
81.Xr getsockname 3SOCKET .
82.Pp
83The
84.Fn pr_getsockname
85function will fail if:
86.Bl -tag -width Er
87.It Er ENOSYS
88An error occurred while trying to invoke the agent LWP and inject a
89library call in the process handle
90.Fa P
91or the process handle
92.Fa P
93does not support library call injection.
94.El
95.Sh INTERFACE STABILITY
96.Sy Uncommitted
97.Sh MT-LEVEL
98See
99.Sy LOCKING
100in
101.Xr libproc 3LIB .
102.Sh SEE ALSO
103.Xr libproc 3LIB ,
104.Xr getsockname 3SOCKET ,
105.Xr proc 5
106