server: Always try return a named pipe server that is listening from find_available_server.

We still fallback to an idle server, but this prevents a client from
connecting to a named pipe server that isn't listening.
diff --git a/server/named_pipe.c b/server/named_pipe.c
index 659d680..6db9a7a 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -772,11 +772,20 @@
 {
     struct pipe_server *server;
 
+    /* look for pipe servers that are listening */
     LIST_FOR_EACH_ENTRY( server, &pipe->servers, struct pipe_server, entry )
     {
-        if (server->state == ps_idle_server || server->state == ps_wait_open)
+        if (server->state == ps_wait_open)
             return (struct pipe_server *)grab_object( server );
     }
+
+    /* fall back to pipe servers that are idle */
+    LIST_FOR_EACH_ENTRY( server, &pipe->servers, struct pipe_server, entry )
+    {
+        if (server->state == ps_idle_server)
+            return (struct pipe_server *)grab_object( server );
+    }
+
     return NULL;
 }