aboutsummaryrefslogtreecommitdiff
path: root/lib/libprocstat
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2024-03-29 19:16:59 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2024-03-29 19:18:32 +0000
commit1a8d176432e76d7725ed1ac0b44f63ac6cc82397 (patch)
treec389b7bc620a773b887a5737c3c4ccbec5d4af46 /lib/libprocstat
parentde2a4e80d7d36651eaa688405ba72562cb7bc87c (diff)
Diffstat (limited to 'lib/libprocstat')
-rw-r--r--lib/libprocstat/libprocstat.c29
-rw-r--r--lib/libprocstat/libprocstat.h1
-rw-r--r--lib/libprocstat/libprocstat_compat.c2
3 files changed, 5 insertions, 27 deletions
diff --git a/lib/libprocstat/libprocstat.c b/lib/libprocstat/libprocstat.c
index 8f1f58d12957..0c7d28540e43 100644
--- a/lib/libprocstat/libprocstat.c
+++ b/lib/libprocstat/libprocstat.c
@@ -83,8 +83,6 @@
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
-#define _WANT_INPCB
-#include <netinet/in_pcb.h>
#include <assert.h>
#include <ctype.h>
@@ -1473,7 +1471,6 @@ procstat_get_socket_info_kvm(kvm_t *kd, struct filestat *fst,
struct sockstat *sock, char *errbuf)
{
struct domain dom;
- struct inpcb inpcb;
struct protosw proto;
struct socket s;
struct unpcb unpcb;
@@ -1522,28 +1519,15 @@ procstat_get_socket_info_kvm(kvm_t *kd, struct filestat *fst,
sock->proto = proto.pr_protocol;
sock->dom_family = dom.dom_family;
sock->so_pcb = (uintptr_t)s.so_pcb;
+ sock->sendq = s.so_snd.sb_ccc;
+ sock->recvq = s.so_rcv.sb_ccc;
+ sock->so_rcv_sb_state = s.so_rcv.sb_state;
+ sock->so_snd_sb_state = s.so_snd.sb_state;
/*
* Protocol specific data.
*/
switch (dom.dom_family) {
- case AF_INET:
- case AF_INET6:
- if (proto.pr_protocol == IPPROTO_TCP) {
- if (s.so_pcb) {
- if (kvm_read(kd, (u_long)s.so_pcb,
- (char *)&inpcb, sizeof(struct inpcb))
- != sizeof(struct inpcb)) {
- warnx("can't read inpcb at %p",
- (void *)s.so_pcb);
- } else
- sock->inp_ppcb =
- (uintptr_t)inpcb.inp_ppcb;
- sock->sendq = s.so_snd.sb_ccc;
- sock->recvq = s.so_rcv.sb_ccc;
- }
- }
- break;
case AF_UNIX:
if (s.so_pcb) {
if (kvm_read(kd, (u_long)s.so_pcb, (char *)&unpcb,
@@ -1551,11 +1535,7 @@ procstat_get_socket_info_kvm(kvm_t *kd, struct filestat *fst,
warnx("can't read unpcb at %p",
(void *)s.so_pcb);
} else if (unpcb.unp_conn) {
- sock->so_rcv_sb_state = s.so_rcv.sb_state;
- sock->so_snd_sb_state = s.so_snd.sb_state;
sock->unp_conn = (uintptr_t)unpcb.unp_conn;
- sock->sendq = s.so_snd.sb_ccc;
- sock->recvq = s.so_rcv.sb_ccc;
}
}
break;
@@ -1603,7 +1583,6 @@ procstat_get_socket_info_sysctl(struct filestat *fst, struct sockstat *sock,
case AF_INET:
case AF_INET6:
if (sock->proto == IPPROTO_TCP) {
- sock->inp_ppcb = kif->kf_un.kf_sock.kf_sock_inpcb;
sock->sendq = kif->kf_un.kf_sock.kf_sock_sendq;
sock->recvq = kif->kf_un.kf_sock.kf_sock_recvq;
}
diff --git a/lib/libprocstat/libprocstat.h b/lib/libprocstat/libprocstat.h
index 3d30b4db4018..4aba1610a05f 100644
--- a/lib/libprocstat/libprocstat.h
+++ b/lib/libprocstat/libprocstat.h
@@ -154,7 +154,6 @@ struct shmstat {
uint16_t mode;
};
struct sockstat {
- uint64_t inp_ppcb;
uint64_t so_addr;
uint64_t so_pcb;
uint64_t unp_conn;
diff --git a/lib/libprocstat/libprocstat_compat.c b/lib/libprocstat/libprocstat_compat.c
index 472527973323..63eb35678752 100644
--- a/lib/libprocstat/libprocstat_compat.c
+++ b/lib/libprocstat/libprocstat_compat.c
@@ -182,7 +182,7 @@ freebsd11_procstat_get_socket_info(struct procstat *procstat, struct filestat *f
r = procstat_get_socket_info(procstat, fst, &sock, errbuf);
if (r != 0)
return (r);
- sock_compat->inp_ppcb = sock.inp_ppcb;
+ sock_compat->inp_ppcb = sock.so_pcb;
sock_compat->so_addr = sock.so_addr;
sock_compat->so_pcb = sock.so_pcb;
sock_compat->unp_conn = sock.unp_conn;