Skip to content

Commit

Permalink
Add ino64 support
Browse files Browse the repository at this point in the history
Submitted by:	kib
Differential Revision:	https://reviews.freebsd.org/D10801 (based on)


git-svn-id: svn+ssh://svn.freebsd.org/ports/head@442229 35697150-7ecd-e111-bb59-0022644237b5
  • Loading branch information
sunpoet committed May 31, 2017
1 parent 3d16929 commit 248a430
Showing 1 changed file with 89 additions and 4 deletions.
93 changes: 89 additions & 4 deletions sysutils/py-psutil/files/patch-psutil-arch-bsd-freebsd_socks.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,44 @@

if (so->so_type != kif->kf_sock_type ||
so->xso_family != kif->kf_sock_domain ||
@@ -208,7 +221,11 @@ int psutil_gather_inet(int proto, PyObje
@@ -135,20 +148,36 @@ psutil_search_tcplist(char *buf, struct
if (kif->kf_sock_domain == AF_INET) {
if (!psutil_sockaddr_matches(
AF_INET, inp->inp_lport, &inp->inp_laddr,
+#if __FreeBSD_version < 1200031
&kif->kf_sa_local))
+#else
+ &kif->kf_un.kf_sock.kf_sa_local))
+#endif
continue;
if (!psutil_sockaddr_matches(
AF_INET, inp->inp_fport, &inp->inp_faddr,
+#if __FreeBSD_version < 1200031
&kif->kf_sa_peer))
+#else
+ &kif->kf_un.kf_sock.kf_sa_peer))
+#endif
continue;
} else {
if (!psutil_sockaddr_matches(
AF_INET6, inp->inp_lport, &inp->in6p_laddr,
+#if __FreeBSD_version < 1200031
&kif->kf_sa_local))
+#else
+ &kif->kf_un.kf_sock.kf_sa_local))
+#endif
continue;
if (!psutil_sockaddr_matches(
AF_INET6, inp->inp_fport, &inp->in6p_faddr,
+#if __FreeBSD_version < 1200031
&kif->kf_sa_peer))
+#else
+ &kif->kf_un.kf_sock.kf_sa_peer))
+#endif
continue;
}

@@ -208,7 +237,11 @@ int psutil_gather_inet(int proto, PyObje
struct xinpgen *xig, *exig;
struct xinpcb *xip;
struct xtcpcb *xtp;
Expand All @@ -46,7 +83,7 @@
struct xsocket *so;
const char *varname = NULL;
size_t len, bufsize;
@@ -273,8 +290,13 @@ int psutil_gather_inet(int proto, PyObje
@@ -273,8 +306,13 @@ int psutil_gather_inet(int proto, PyObje
goto error;
}
inp = &xtp->xt_inp;
Expand All @@ -60,7 +97,7 @@
break;
case IPPROTO_UDP:
xip = (struct xinpcb *)xig;
@@ -283,7 +305,11 @@ int psutil_gather_inet(int proto, PyObje
@@ -283,7 +321,11 @@ int psutil_gather_inet(int proto, PyObje
"struct xinpcb size mismatch");
goto error;
}
Expand All @@ -72,7 +109,7 @@
so = &xip->xi_socket;
status = PSUTIL_CONN_NONE;
break;
@@ -477,7 +503,11 @@ psutil_proc_connections(PyObject *self,
@@ -477,7 +519,11 @@ psutil_proc_connections(PyObject *self,
struct kinfo_file *freep = NULL;
struct kinfo_file *kif;
char *tcplist = NULL;
Expand All @@ -84,3 +121,51 @@

PyObject *py_retlist = PyList_New(0);
PyObject *py_tuple = NULL;
@@ -547,19 +593,35 @@ psutil_proc_connections(PyObject *self,
inet_ntop(
kif->kf_sock_domain,
psutil_sockaddr_addr(kif->kf_sock_domain,
+#if __FreeBSD_version < 1200031
&kif->kf_sa_local),
+#else
+ &kif->kf_un.kf_sock.kf_sa_local),
+#endif
lip,
sizeof(lip));
inet_ntop(
kif->kf_sock_domain,
psutil_sockaddr_addr(kif->kf_sock_domain,
+#if __FreeBSD_version < 1200031
&kif->kf_sa_peer),
+#else
+ &kif->kf_un.kf_sock.kf_sa_peer),
+#endif
rip,
sizeof(rip));
lport = htons(psutil_sockaddr_port(kif->kf_sock_domain,
+#if __FreeBSD_version < 1200031
&kif->kf_sa_local));
+#else
+ &kif->kf_un.kf_sock.kf_sa_local));
+#endif
rport = htons(psutil_sockaddr_port(kif->kf_sock_domain,
+#if __FreeBSD_version < 1200031
&kif->kf_sa_peer));
+#else
+ &kif->kf_un.kf_sock.kf_sa_peer));
+#endif

// construct python tuple/list
py_laddr = Py_BuildValue("(si)", lip, lport);
@@ -590,7 +652,11 @@ psutil_proc_connections(PyObject *self,
else if (kif->kf_sock_domain == AF_UNIX) {
struct sockaddr_un *sun;

+#if __FreeBSD_version < 1200031
sun = (struct sockaddr_un *)&kif->kf_sa_local;
+#else
+ sun = (struct sockaddr_un *)&kif->kf_un.kf_sock.kf_sa_local;
+#endif
snprintf(
path, sizeof(path), "%.*s",
(int)(sun->sun_len - (sizeof(*sun) - sizeof(sun->sun_path))),

0 comments on commit 248a430

Please sign in to comment.