ports/devel/libgtop/files/patch-sysdeps_freebsd_procopenfiles.c
Koop Mast ac0288a04e The ino64 commit to base was in OSVERSION 1200031, so fix the logic bug
and include this OSVERSION aswell ..

Submitted by:	antoine@
Pointyhat to:	kwm@
2017-05-27 16:55:42 +00:00

57 lines
1.9 KiB
C

--- sysdeps/freebsd/procopenfiles.c.orig 2014-10-12 07:17:26 UTC
+++ sysdeps/freebsd/procopenfiles.c
@@ -322,12 +322,21 @@ glibtop_get_proc_open_files_s (glibtop *server, glibto
struct sockaddr_un *sun;
entry.type = GLIBTOP_FILE_TYPE_LOCALSOCKET;
+/* 64bit inodes */
+#if __FreeBSD_version >= 1200031
+ sun = (struct sockaddr_un *)&kif->kf_un.kf_sock.kf_sa_local;
+#else
sun = (struct sockaddr_un *)&kif->kf_sa_local;
+#endif
if (sun->sun_path[0]) {
char *addrstr;
+#if __FreeBSD_version >= 1200031
+ addrstr = addr_to_string(&kif->kf_un.kf_sock.kf_sa_local);
+#else
addrstr = addr_to_string(&kif->kf_sa_local);
+#endif
g_strlcpy(entry.info.localsock.name,
addrstr,
sizeof(entry.info.localsock.name));
@@ -335,7 +344,11 @@ glibtop_get_proc_open_files_s (glibtop *server, glibto
} else {
char *addrstr;
+#if __FreeBSD_version >= 1200031
+ addrstr = addr_to_string(&kif->kf_un.kf_sock.kf_sa_peer);
+#else
addrstr = addr_to_string(&kif->kf_sa_peer);
+#endif
g_strlcpy(entry.info.localsock.name,
addrstr,
sizeof(entry.info.localsock.name));
@@ -349,12 +362,20 @@ glibtop_get_proc_open_files_s (glibtop *server, glibto
entry.type = GLIBTOP_FILE_TYPE_INETSOCKET;
else
entry.type = GLIBTOP_FILE_TYPE_INET6SOCKET;
+#if __FreeBSD_version >= 1200031
+ addrstr = addr_to_string(&kif->kf_un.kf_sock.kf_sa_peer);
+#else
addrstr = addr_to_string(&kif->kf_sa_peer);
+#endif
g_strlcpy(entry.info.sock.dest_host,
addrstr,
sizeof(entry.info.sock.dest_host));
g_free(addrstr);
+#if __FreeBSD_version >= 1200031
+ entry.info.sock.dest_port = addr_to_port(&kif->kf_un.kf_sock.kf_sa_peer);
+#else
entry.info.sock.dest_port = addr_to_port(&kif->kf_sa_peer);
+#endif
}
} else if (kif->kf_type == KF_TYPE_PIPE) {
entry.type = GLIBTOP_FILE_TYPE_PIPE;