aboutsummaryrefslogtreecommitdiff
path: root/lib/libsysdecode
diff options
context:
space:
mode:
authorMichael Tuexen <tuexen@FreeBSD.org>2017-05-25 14:27:54 +0000
committerMichael Tuexen <tuexen@FreeBSD.org>2017-05-25 14:27:54 +0000
commit738a93a4613638e9290b80a1a9a7997d1db8a4e8 (patch)
treed07363963608c5598f716ef85c7935951eaf8a74 /lib/libsysdecode
parentfa5f501d0ad7576e208a1ad1052d3e79cde0f36b (diff)
Notes
Diffstat (limited to 'lib/libsysdecode')
-rw-r--r--lib/libsysdecode/Makefile1
-rw-r--r--lib/libsysdecode/flags.c13
-rw-r--r--lib/libsysdecode/sysdecode.h1
-rw-r--r--lib/libsysdecode/sysdecode_socket_protocol.354
4 files changed, 69 insertions, 0 deletions
diff --git a/lib/libsysdecode/Makefile b/lib/libsysdecode/Makefile
index 7f4b302d5deb..ddd7c72ade98 100644
--- a/lib/libsysdecode/Makefile
+++ b/lib/libsysdecode/Makefile
@@ -22,6 +22,7 @@ MAN= sysdecode.3 \
sysdecode_quotactl_cmd.3 \
sysdecode_sigcode.3 \
sysdecode_sockopt_name.3 \
+ sysdecode_socket_protocol.3 \
sysdecode_syscallnames.3 \
sysdecode_utrace.3
MLINKS= sysdecode_abi_to_freebsd_errno.3 sysdecode_freebsd_to_abi_errno.3
diff --git a/lib/libsysdecode/flags.c b/lib/libsysdecode/flags.c
index 82c8de8353e9..ea477b0e239c 100644
--- a/lib/libsysdecode/flags.c
+++ b/lib/libsysdecode/flags.c
@@ -730,6 +730,19 @@ sysdecode_socketdomain(int domain)
}
const char *
+sysdecode_socket_protocol(int domain, int protocol)
+{
+
+ switch (domain) {
+ case PF_INET:
+ case PF_INET6:
+ return (lookup_value(sockipproto, protocol));
+ default:
+ return (NULL);
+ }
+}
+
+const char *
sysdecode_sockaddr_family(int sa_family)
{
diff --git a/lib/libsysdecode/sysdecode.h b/lib/libsysdecode/sysdecode.h
index f8d05be37cb3..03c12a5a7f8b 100644
--- a/lib/libsysdecode/sysdecode.h
+++ b/lib/libsysdecode/sysdecode.h
@@ -99,6 +99,7 @@ const char *sysdecode_sigsegv_code(int _si_code);
const char *sysdecode_sigtrap_code(int _si_code);
const char *sysdecode_sockaddr_family(int _sa_family);
const char *sysdecode_socketdomain(int _domain);
+const char *sysdecode_socket_protocol(int _domain, int _protocol);
bool sysdecode_socket_type(FILE *_fp, int _type, int *_rem);
const char *sysdecode_sockopt_level(int _level);
const char *sysdecode_sockopt_name(int _level, int _optname);
diff --git a/lib/libsysdecode/sysdecode_socket_protocol.3 b/lib/libsysdecode/sysdecode_socket_protocol.3
new file mode 100644
index 000000000000..66b92e5e2310
--- /dev/null
+++ b/lib/libsysdecode/sysdecode_socket_protocol.3
@@ -0,0 +1,54 @@
+.\"
+.\" Copyright (c) 2016 John Baldwin <jhb@FreeBSD.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd May 25, 2017
+.Dt sysdecode_socket_protocol 3
+.Os
+.Sh NAME
+.Nm sysdecode_socket_protocol
+.Nd lookup name of socket protocol
+.Sh LIBRARY
+.Lb libsysdecode
+.Sh SYNOPSIS
+.In sys/types.h
+.In stdbool.h
+.In sysdecode.h
+.Ft const char *
+.Fn sysdecode_socket_protocol "int domain" "int protocol"
+.Sh DESCRIPTION
+The
+.Fn sysdecode_socket_protocol
+function returns a text description of the protocol passed in the
+.Fa protocol
+argument to
+.Xr socket 2 .
+.Fn sysdecode_socket_protocol
+takes the
+.Fa protocol
+as well as the
+.Fa domain
+to uniquely identify the protocol.