[Xenomai-git] Philippe Gerum : lib/cobalt: recvfrom: update *addrlen when requested

2018-01-23 Thread git repository hosting
Module: xenomai-3
Branch: wip/rtnet-fixes
Commit: 398ea8fdf41e194d727a15170b3f02449e236453
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=398ea8fdf41e194d727a15170b3f02449e236453

Author: Philippe Gerum 
Date:   Tue Jan 23 16:35:54 2018 +0100

lib/cobalt: recvfrom: update *addrlen when requested

---

 lib/cobalt/rtdm.c |   11 +--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/cobalt/rtdm.c b/lib/cobalt/rtdm.c
index 1907090..9e88ca9 100644
--- a/lib/cobalt/rtdm.c
+++ b/lib/cobalt/rtdm.c
@@ -269,8 +269,15 @@ COBALT_IMPL(ssize_t, recvfrom, (int fd, void *buf, size_t 
len, int flags,
int ret;
 
ret = do_recvmsg(fd, &msg, flags);
-   if (ret != -EBADF && ret != -ENOSYS)
-   return set_errno(ret);
+   if (ret != -EBADF && ret != -ENOSYS) {
+   if (ret < 0)
+   return set_errno(ret);
+
+   if (from)
+   *fromlen = msg.msg_namelen;
+
+   return ret;
+   }
 
return __STD(recvfrom(fd, buf, len, flags, from, fromlen));
 }


___
Xenomai-git mailing list
Xenomai-git@xenomai.org
https://xenomai.org/mailman/listinfo/xenomai-git


[Xenomai-git] Philippe Gerum : lib/cobalt: recvfrom: update *addrlen when requested

2018-01-23 Thread git repository hosting
Module: xenomai-3
Branch: stable-3.0.x
Commit: 398ea8fdf41e194d727a15170b3f02449e236453
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=398ea8fdf41e194d727a15170b3f02449e236453

Author: Philippe Gerum 
Date:   Tue Jan 23 16:35:54 2018 +0100

lib/cobalt: recvfrom: update *addrlen when requested

---

 lib/cobalt/rtdm.c |   11 +--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/cobalt/rtdm.c b/lib/cobalt/rtdm.c
index 1907090..9e88ca9 100644
--- a/lib/cobalt/rtdm.c
+++ b/lib/cobalt/rtdm.c
@@ -269,8 +269,15 @@ COBALT_IMPL(ssize_t, recvfrom, (int fd, void *buf, size_t 
len, int flags,
int ret;
 
ret = do_recvmsg(fd, &msg, flags);
-   if (ret != -EBADF && ret != -ENOSYS)
-   return set_errno(ret);
+   if (ret != -EBADF && ret != -ENOSYS) {
+   if (ret < 0)
+   return set_errno(ret);
+
+   if (from)
+   *fromlen = msg.msg_namelen;
+
+   return ret;
+   }
 
return __STD(recvfrom(fd, buf, len, flags, from, fromlen));
 }


___
Xenomai-git mailing list
Xenomai-git@xenomai.org
https://xenomai.org/mailman/listinfo/xenomai-git