+void ClientSocket::shutdown(IO::Mode m)
+{
+ int how;
+ m = m&IO::M_RDWR;
+#ifdef _WIN32
+ if(m==IO::M_READ)
+ how = SD_RECEIVE;
+ else if(m==IO::M_WRITE)
+ how = SD_SEND;
+ else if(m==IO::M_RDWR)
+ how = SD_BOTH;
+#else
+ if(m==IO::M_READ)
+ how = SHUT_RD;
+ else if(m==IO::M_WRITE)
+ how = SHUT_WR;
+ else if(m==IO::M_RDWR)
+ how = SHUT_RDWR;
+#endif
+ else
+ return;
+
+ ::shutdown(priv->handle, how);
+ mode = mode&~m;
+}
+