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_GETSOCKOPT 3PROC 16.Os 17.Sh NAME 18.Nm pr_getsockopt 19.Nd inject getsockopt library call call into victim process 20.Sh LIBRARY 21.Lb libproc 22.Sh SYNOPSIS 23.In libproc.h 24.Ft int 25.Fo pr_getsockopt 26.Fa "struct ps_prochandle *P" 27.Fa "int sock" 28.Fa "int level" 29.Fa "int optname" 30.Fa "void *optval" 31.Fa "int *optlen" 32.Fc 33.Sh DESCRIPTION 34The 35.Fn pr_getsockopt 36function injects the 37.Xr getsockopt 3SOCKET 38library call call into the target process 39.Fa P 40by means of the agent lwp. 41If the process handle 42.Fa P 43is the value 44.Dv NULL 45then this will be equivalent to calling 46.Xr getsockopt 3SOCKET 47on the currently running process. 48.Pp 49The arguments 50.Fa sock , 51.Fa level , 52.Fa optname , 53.Fa optval , 54and 55.Fa optlen 56have the same meaning as in 57.Xr getsockopt 3SOCKET , 58see 59.Xr getsockopt 3SOCKET 60for the full description and purpose of the 61.Sy getsockopt 62system call and its arguments. 63.Pp 64The 65.Fn pr_getsockopt 66function only works on active processes. 67Process handles that correspond to core files, zombie processes, or ELF objects 68do not support system call injection. 69.Sh RETURN VALUES 70Upon successful completion, the 71.Fn pr_getsockopt 72function's return value is that described in 73.Xr getsockopt 3SOCKET . 74Otherwise, 75.Sy -1 76is returned and 77.Sy errno 78is set to 79.Er ENOSYS 80to indicate that the system call could not be injected. 81.Sh ERRORS 82For the full list of errors see the 83.Sy ERRORS 84section in 85.Xr getsockopt 3SOCKET . 86.Pp 87The 88.Fn pr_getsockopt 89function will fail if: 90.Bl -tag -width Er 91.It Er ENOSYS 92An error occurred while trying to invoke the agent lwp and inject a 93system call in the process handle 94.Fa P 95or the process handle 96.Fa P 97does not support system call injection. 98.El 99.Sh INTERFACE STABILITY 100.Sy Uncommitted 101.Sh MT-LEVEL 102See 103.Sy LOCKING 104in 105.Xr libproc 3LIB . 106.Sh SEE ALSO 107.Xr libproc 3LIB , 108.Xr getsockopt 3SOCKET , 109.Xr proc 5 110