From 28e7d7faed355e451cc8b0c037035dfcf873a965 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 20 Aug 1998 22:04:22 +0000 Subject: Patches from Eric Norum --- c/src/libnetworking/rtems/rtems_syscall.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'c/src/libnetworking/rtems/rtems_syscall.c') diff --git a/c/src/libnetworking/rtems/rtems_syscall.c b/c/src/libnetworking/rtems/rtems_syscall.c index 794b8d3d8e..a526eb2254 100644 --- a/c/src/libnetworking/rtems/rtems_syscall.c +++ b/c/src/libnetworking/rtems/rtems_syscall.c @@ -617,8 +617,8 @@ getsockopt (int s, int level, int name, void *aval, int *avalsize) return 0; } -int -getpeername (int s, struct sockaddr *name, int *namelen) +static int +getpeersockname (int s, struct sockaddr *name, int *namelen, int pflag) { struct socket *so; struct mbuf *m; @@ -636,7 +636,10 @@ getpeername (int s, struct sockaddr *name, int *namelen) rtems_bsdnet_semaphore_release (); return -1; } - error = (*so->so_proto->pr_usrreqs->pru_peeraddr)(so, m); + if (pflag) + error = (*so->so_proto->pr_usrreqs->pru_peeraddr)(so, m); + else + error = (*so->so_proto->pr_usrreqs->pru_sockaddr)(so, m); if (error) { errno = error; rtems_bsdnet_semaphore_release (); @@ -652,6 +655,17 @@ getpeername (int s, struct sockaddr *name, int *namelen) return 0; } +int +getpeername (int s, struct sockaddr *name, int *namelen) +{ + return getpeersockname (s, name, namelen, 1); +} +int +getsockname (int s, struct sockaddr *name, int *namelen) +{ + return getpeersockname (s, name, namelen, 0); +} + /* ************************************************************************ * RTEMS EXTERNAL I/O HANDLER ROUTINES * -- cgit v1.2.3