diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-10-14 13:09:15 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-10-31 13:18:48 +0100 |
commit | 0beab1e86a5a4e195f5beeb927b6f5a616208667 (patch) | |
tree | c72cdd595ce7f0c187ee1d5c11c6bf5cc6d179a8 /freebsd/sys/kern/uipc_syscalls.c | |
parent | Use getsockopt() and setsockopt() from FreeBSD (diff) | |
download | rtems-libbsd-0beab1e86a5a4e195f5beeb927b6f5a616208667.tar.bz2 |
Use getpeername() from FreeBSD
Diffstat (limited to 'freebsd/sys/kern/uipc_syscalls.c')
-rw-r--r-- | freebsd/sys/kern/uipc_syscalls.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/freebsd/sys/kern/uipc_syscalls.c b/freebsd/sys/kern/uipc_syscalls.c index 7377c7f4..249bc2b7 100644 --- a/freebsd/sys/kern/uipc_syscalls.c +++ b/freebsd/sys/kern/uipc_syscalls.c @@ -1799,7 +1799,13 @@ ogetsockname(td, uap) return (getsockname1(td, uap, 1)); } #endif /* COMPAT_OLDSOCK */ +#endif /* __rtems__ */ +#ifdef __rtems__ +static int +kern_getpeername(struct thread *td, int fd, struct sockaddr **sa, + socklen_t *alen); +#endif /* __rtems__ */ /* * getpeername1() - Get name of peer for connected socket. */ @@ -1838,6 +1844,28 @@ getpeername1(td, uap, compat) error = copyout(&len, uap->alen, sizeof(len)); return (error); } +#ifdef __rtems__ +int +getpeername(int socket, struct sockaddr *__restrict address, + socklen_t *__restrict address_len) +{ + struct thread *td = rtems_bsd_get_curthread_or_null(); + struct getpeername_args ua = { + .fdes = socket, + .asa = address, + .alen = address_len + }; + int error; + + if (td != NULL) { + error = getpeername1(td, &ua); + } else { + error = ENOMEM; + } + + return rtems_bsd_error_to_status_and_errno(error); +} +#endif /* __rtems__ */ int kern_getpeername(struct thread *td, int fd, struct sockaddr **sa, @@ -1885,6 +1913,7 @@ done: return (error); } +#ifndef __rtems__ int getpeername(td, uap) struct thread *td; |