Version: 1
-Previous: 4f2341592c5595eab8abc3f9797c1cb7030ff531
-Head: 5750822173a5e70c466827411c79d9cddb005799
+Previous: e318748c059733f61a36d361d9d4283ddebfac83
+Head: 62566a3bde81dc8260d04ebbc8dac709343d58ff
Applied:
v6only: 3afce107e2baec86c5541ed0acd992e37bcb992a
rselect: 52ee17ec6697c63e048d2c875371e6ab452c0541
shut_wr: 5750822173a5e70c466827411c79d9cddb005799
+ refresh-temp: 62566a3bde81dc8260d04ebbc8dac709343d58ff
Unapplied:
rs-1sge: 8ec392829399dec7ed5c608b8697a482e5faa2de
ip6-opt: 7e43a759255e9890d1e41f1edf71792836f53941
--- /dev/null
+Bottom: a67f701fbc904bcaea2ce884e38088db7feaff9d
+Top: fc740213810d83b3296beb8b580626fb77d698d1
+Author: Sean Hefty <sean.hefty@intel.com>
+Date: 2012-06-27 15:21:13 -0700
+
+Refresh of shut_wr
+
+---
+
+diff --git a/src/rsocket.c b/src/rsocket.c
+index 419e9df..c77dd4a 100644
+--- a/src/rsocket.c
++++ b/src/rsocket.c
+@@ -757,12 +757,11 @@ int rconnect(int socket, const struct sockaddr *addr, socklen_t addrlen)
+ return rs_do_connect(rs);
+ }
+
+-static int rs_shutdown_state(struct rsocket *rs, int state)
++static void rs_shutdown_state(struct rsocket *rs, int state)
+ {
+ rs->state &= ~state;
+ if (rs->state == rs_connected)
+ rs->state = rs_disconnected;
+- return rs->state == rs_disconnected;
+ }
+
+ static int rs_post_write(struct rsocket *rs, uint64_t wr_id,
+@@ -1722,8 +1721,9 @@ int rshutdown(int socket, int how)
+ ctrl = RS_CTRL_DISCONNECT;
+ rs->state = rs_disconnected;
+ } else {
+- ctrl = rs_shutdown_state(rs, rs_connect_wr) ?
+- RS_CTRL_DISCONNECT : RS_CTRL_SHUTDOWN;
++ rs_shutdown_state(rs, rs_connect_wr);
++ ctrl = (rs->state & rs_connected) ?
++ RS_CTRL_SHUTDOWN : RS_CTRL_DISCONNECT;
+ }
+ if (!rs_can_send_ctrl(rs)) {
+ ret = rs_process_cq(rs, 0, rs_can_send_ctrl);