summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.bin/kdump/kdump.c12
-rw-r--r--usr.bin/kdump/kdump_subr.h1
-rw-r--r--usr.bin/kdump/mksubr2
3 files changed, 14 insertions, 1 deletions
diff --git a/usr.bin/kdump/kdump.c b/usr.bin/kdump/kdump.c
index e4af82a..3480997 100644
--- a/usr.bin/kdump/kdump.c
+++ b/usr.bin/kdump/kdump.c
@@ -58,6 +58,7 @@ extern int errno;
#include <sys/ktrace.h>
#include <sys/ioctl.h>
#include <sys/ptrace.h>
+#include <sys/socket.h>
#include <err.h>
#include <locale.h>
#include <stdio.h>
@@ -528,14 +529,23 @@ ktrsyscall(struct ktr_syscall *ktr)
ip++;
narg-=2;
} else if (ktr->ktr_code == SYS_socket) {
+ int sockdomain;
(void)putchar('(');
- sockdomainname((int)*ip);
+ sockdomain=(int)*ip;
+ sockdomainname(sockdomain);
ip++;
narg--;
(void)putchar(',');
socktypename((int)*ip);
ip++;
narg--;
+ if (sockdomain == PF_INET ||
+ sockdomain == PF_INET6) {
+ (void)putchar(',');
+ sockipprotoname((int)*ip);
+ ip++;
+ narg--;
+ }
c = ',';
} else if (ktr->ktr_code == SYS_setsockopt ||
ktr->ktr_code == SYS_getsockopt) {
diff --git a/usr.bin/kdump/kdump_subr.h b/usr.bin/kdump/kdump_subr.h
index f69921d..6e336dd 100644
--- a/usr.bin/kdump/kdump_subr.h
+++ b/usr.bin/kdump/kdump_subr.h
@@ -21,6 +21,7 @@ void flockname (int);
void sockoptname (int);
void sockoptlevelname (int, int);
void sockdomainname (int);
+void sockipprotoname (int);
void socktypename (int);
void thrcreateflagsname (int);
void mlockallname (int);
diff --git a/usr.bin/kdump/mksubr b/usr.bin/kdump/mksubr
index 78cbeab..4231aab 100644
--- a/usr.bin/kdump/mksubr
+++ b/usr.bin/kdump/mksubr
@@ -138,6 +138,7 @@ cat <<_EOF_
#define _KERNEL
#include <sys/socket.h>
#undef _KERNEL
+#include <netinet/in.h>
#include <sys/param.h>
#include <sys/mount.h>
#include <sys/resource.h>
@@ -335,6 +336,7 @@ auto_switch_type "lio_listioname" "LIO_(NO)?WAIT[[:space:]]+[0-9]+" "aio.h"
auto_switch_type "minheritname" "INHERIT_[A-Z]+[[:space:]]+[0-9]+" "sys/mman.h"
auto_switch_type "quotactlname" "Q_[A-Z]+[[:space:]]+0x[0-9]+" "ufs/ufs/quota.h"
auto_if_type "sockdomainname" "PF_[[:alnum:]]+[[:space:]]+" "sys/socket.h"
+auto_if_type "sockipprotoname" "IPPROTO_[[:alnum:]]+[[:space:]]+" "netinet/in.h"
auto_switch_type "sockoptname" "SO_[A-Z]+[[:space:]]+0x[0-9]+" "sys/socket.h"
auto_switch_type "socktypename" "SOCK_[A-Z]+[[:space:]]+[1-9]+[0-9]*" "sys/socket.h"
OpenPOWER on IntegriCloud