summaryrefslogtreecommitdiffstats
path: root/c/src/libnetworking/rtems/rtems_syscall.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1998-08-20 22:04:22 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1998-08-20 22:04:22 +0000
commit28e7d7faed355e451cc8b0c037035dfcf873a965 (patch)
tree45cde8cd69057225747646a9ad80abba592ae710 /c/src/libnetworking/rtems/rtems_syscall.c
parentAdded CVS Ids (diff)
downloadrtems-28e7d7faed355e451cc8b0c037035dfcf873a965.tar.bz2
Patches from Eric Norum
Diffstat (limited to 'c/src/libnetworking/rtems/rtems_syscall.c')
-rw-r--r--c/src/libnetworking/rtems/rtems_syscall.c20
1 files changed, 17 insertions, 3 deletions
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 *