Do not clear FD_WINE_CONNECTED on shutdown(). FD_WINE_CONNECTED
(currently unused) can thus be used to determine if a stream socket
was ever connected.

diff --git a/server/sock.c b/server/sock.c
index 0a45c2f..05324b9 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -398,7 +398,7 @@
         {
             sock->errors[FD_CLOSE_BIT] = sock_error( sock->obj.fd );
             if ( (event & POLLERR) || ( sock_shutdown_type == SOCK_SHUTDOWN_EOF && (event & POLLHUP) ))
-                sock->state &= ~(FD_WINE_CONNECTED|FD_WRITE);
+                sock->state &= ~FD_WRITE;
             sock->pmask |= FD_CLOSE;
             sock->hmask |= FD_CLOSE;
             if (debug_level)
@@ -494,8 +494,11 @@
     }
     *flags = 0;
     if (sock->flags & WSA_FLAG_OVERLAPPED) *flags |= FD_FLAG_OVERLAPPED;
-    if ( !(sock->state & FD_READ ) )  *flags |= FD_FLAG_RECV_SHUTDOWN;
-    if ( !(sock->state & FD_WRITE ) ) *flags |= FD_FLAG_SEND_SHUTDOWN;
+    if ( sock->type != SOCK_STREAM || sock->state & FD_WINE_CONNECTED )
+    {
+        if ( !(sock->state & FD_READ  ) ) *flags |= FD_FLAG_RECV_SHUTDOWN;
+        if ( !(sock->state & FD_WRITE ) ) *flags |= FD_FLAG_SEND_SHUTDOWN;
+    }
     return FD_TYPE_SOCKET;
 }