summaryrefslogtreecommitdiff
path: root/pr/src/md/beos/bnet.c
diff options
context:
space:
mode:
Diffstat (limited to 'pr/src/md/beos/bnet.c')
-rw-r--r--pr/src/md/beos/bnet.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/pr/src/md/beos/bnet.c b/pr/src/md/beos/bnet.c
index 2aa0194f..c4e2beae 100644
--- a/pr/src/md/beos/bnet.c
+++ b/pr/src/md/beos/bnet.c
@@ -744,6 +744,15 @@ _MD_getpeername (PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen)
rv = getpeername(fd->secret->md.osfd,
(struct sockaddr *) addr, (_PRSockLen_t *)addrlen);
+#ifdef _PR_HAVE_SOCKADDR_LEN
+ if (rv == 0) {
+ /* ignore the sa_len field of struct sockaddr */
+ if (addr) {
+ addr->raw.family = ((struct sockaddr *) addr)->sa_family;
+ }
+ }
+#endif /* _PR_HAVE_SOCKADDR_LEN */
+
if (rv < 0) {
err = _MD_ERRNO();
_PR_MD_MAP_GETPEERNAME_ERROR(err);