diff options
Diffstat (limited to 'pr/src/md/beos/bnet.c')
-rw-r--r-- | pr/src/md/beos/bnet.c | 9 |
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); |