diff options
| author | Gleb Smirnoff <glebius@FreeBSD.org> | 2024-03-29 19:16:59 +0000 |
|---|---|---|
| committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2024-03-29 19:18:32 +0000 |
| commit | 1a8d176432e76d7725ed1ac0b44f63ac6cc82397 (patch) | |
| tree | c389b7bc620a773b887a5737c3c4ccbec5d4af46 /lib/libprocstat | |
| parent | de2a4e80d7d36651eaa688405ba72562cb7bc87c (diff) | |
Diffstat (limited to 'lib/libprocstat')
| -rw-r--r-- | lib/libprocstat/libprocstat.c | 29 | ||||
| -rw-r--r-- | lib/libprocstat/libprocstat.h | 1 | ||||
| -rw-r--r-- | lib/libprocstat/libprocstat_compat.c | 2 |
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; |
