Added an inode object to keep track of all file descriptors open for a
given file.
Plugged a couple of potential file descriptor leaks.
diff --git a/server/sock.c b/server/sock.c
index 51d7ec7..6161d23 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -616,7 +616,7 @@
sock->message = 0;
sock->wparam = 0;
sock->deferred = NULL;
- if (!(sock->fd = alloc_fd( &sock_fd_ops, sockfd, &sock->obj )))
+ if (!(sock->fd = create_anonymous_fd( &sock_fd_ops, sockfd, &sock->obj )))
{
release_object( sock );
return NULL;
@@ -686,7 +686,7 @@
if (sock->event) acceptsock->event = (struct event *)grab_object( sock->event );
acceptsock->flags = sock->flags;
acceptsock->deferred = 0;
- if (!(acceptsock->fd = alloc_fd( &sock_fd_ops, acceptfd, &acceptsock->obj )))
+ if (!(acceptsock->fd = create_anonymous_fd( &sock_fd_ops, acceptfd, &acceptsock->obj )))
{
release_object( acceptsock );
release_object( sock );