Similar to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=246189

--- seatd/client.c.orig	2020-08-08 13:27:43 UTC
+++ seatd/client.c
@@ -37,10 +37,14 @@ static int get_peer(int fd, pid_t *pid, uid_t *uid, gi
 #elif defined(__FreeBSD__)
 	struct xucred cred;
 	socklen_t len = sizeof cred;
-	if (getsockopt(fd, SOL_SOCKET, LOCAL_PEERCRED, &cred, &len) == -1) {
+	if (getsockopt(fd, 0, LOCAL_PEERCRED, &cred, &len) == -1) {
 		return -1;
 	}
+#if __FreeBSD__ < 13
 	*pid = -1;
+#else
+	*pid = cred.cr_pid;
+#endif
 	*uid = cred.cr_uid;
 	*gid = cred.cr_ngroups > 0 ? cred.cr_groups[0] : -1;
 	return 0;
