Version: 1
-Previous: 5302c3c49ba249e5e0c99e0717b0856f4136a3ae
+Previous: 5e3012c2761f25a47234ff14bb19ad9e18785c90
Head: dacc495f23ea3719bc98a8a6c148771d5097caf0
Applied:
- nonblock: dacc495f23ea3719bc98a8a6c148771d5097caf0
Unapplied:
old-af-ib: aaa0d9ca917c8c361a978e5a116963c2cceac5ba
old-seterr: 47eb0c419687c2690292c1910acae83a46e5388c
+++ /dev/null
-Bottom: bc6e27468c0f7e18f8977628c2581cff36914899
-Top: 4b3715465e5fbbc65460a5c47049ba42e48710f2
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2015-02-05 21:17:03 -0800
-
-rsockets: Fix setting flags in rfctl
-
-The rfcntl() call to set rsocket flags merely OR's in
-the updated flags with the existing ones, rather than
-replacing them. Also, it does not handle setting an
-rsocket from nonblocking mode back to blocking mode.
-
-Signed-off-by: Sean Hefty <sean.hefty@intel.com>
-
-
----
-
-diff --git a/src/rsocket.c b/src/rsocket.c
-index 4ff3a42..6e8f375 100644
---- a/src/rsocket.c
-+++ b/src/rsocket.c
-@@ -3696,11 +3696,11 @@ int rfcntl(int socket, int cmd, ... /* arg */ )
- break;
- case F_SETFL:
- param = va_arg(args, long);
-- if (param & O_NONBLOCK)
-- ret = rs_set_nonblocking(rs, O_NONBLOCK);
-+ if ((rs->fd_flags & O_NONBLOCK) != (param & O_NONBLOCK))
-+ ret = rs_set_nonblocking(rs, param & O_NONBLOCK);
-
- if (!ret)
-- rs->fd_flags |= param;
-+ rs->fd_flags = param;
- break;
- default:
- ret = ERR(ENOTSUP);