Started moving functions that deal with Unix file descriptors to a
separate fd object. This will be needed for file locking.

diff --git a/server/request.c b/server/request.c
index ff1450b..98bec45 100644
--- a/server/request.c
+++ b/server/request.c
@@ -48,6 +48,7 @@
 #include "wincon.h"
 #include "wine/library.h"
 
+#include "file.h"
 #include "handle.h"
 #include "thread.h"
 #include "process.h"
@@ -81,13 +82,18 @@
     NULL,                          /* remove_queue */
     NULL,                          /* signaled */
     NULL,                          /* satisfied */
+    no_get_fd,                     /* get_fd */
+    no_get_file_info,              /* get_file_info */
+    no_destroy                     /* destroy */
+};
+
+static const struct fd_ops master_socket_fd_ops =
+{
     NULL,                          /* get_poll_events */
     master_socket_poll_event,      /* poll_event */
-    no_get_fd,                     /* get_fd */
     no_flush,                      /* flush */
     no_get_file_info,              /* get_file_info */
-    NULL,                          /* queue_async */
-    no_destroy                     /* destroy */
+    no_queue_async                 /* queue_async */
 };
 
 
@@ -670,7 +676,7 @@
     chmod( server_socket_name, 0600 );  /* make sure no other user can connect */
     if (listen( fd, 5 ) == -1) fatal_perror( "listen" );
 
-    if (!(master_socket = alloc_object( &master_socket_ops, fd )))
+    if (!(master_socket = alloc_fd_object( &master_socket_ops, &master_socket_fd_ops, fd )))
         fatal_error( "out of memory\n" );
     master_socket->timeout = NULL;
     set_select_events( &master_socket->obj, POLLIN );