Shutdown switches an rsocket from nonblocking to blocking to
ensure that all data has been sent. After completing all
transfers, it should switch back to nonblocking; this handles
partial shutdown situations, where only half the connection
is shut down. However, the code uses the value of '1' to
set the nonblocking flag, rather than O_NONBLOCK. Fix this.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
rs_process_cq(rs, 0, rs_conn_all_sends_done);
if ((rs->fd_flags & O_NONBLOCK) && (rs->state & rs_connected))
- rs_set_nonblocking(rs, 1);
+ rs_set_nonblocking(rs, rs->fd_flags);
return 0;
}
ds_process_cqs(rs, 0, ds_all_sends_done);
if (rs->fd_flags & O_NONBLOCK)
- rs_set_nonblocking(rs, 1);
+ rs_set_nonblocking(rs, rs->fd_flags);
}
int rclose(int socket)