Jacek Caban : server: Use pipe stored in pipe_end in set_named_pipe_info.
Alexandre Julliard
julliard at winehq.org
Thu Aug 16 13:42:50 CDT 2018
Module: wine
Branch: master
Commit: 6498ea18d36e806ed80542df3d0501470080d7c3
URL: https://source.winehq.org/git/wine.git/?a=commit;h=6498ea18d36e806ed80542df3d0501470080d7c3
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Aug 16 15:11:32 2018 +0200
server: Use pipe stored in pipe_end in set_named_pipe_info.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
server/named_pipe.c | 40 ++++++++++------------------------------
1 file changed, 10 insertions(+), 30 deletions(-)
diff --git a/server/named_pipe.c b/server/named_pipe.c
index e6e497b..7883a1d 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -1075,14 +1075,6 @@ static int pipe_client_ioctl( struct fd *fd, ioctl_code_t code, struct async *as
}
}
-static struct pipe_server *get_pipe_server_obj( struct process *process,
- obj_handle_t handle, unsigned int access )
-{
- struct object *obj;
- obj = get_handle_obj( process, handle, access, &pipe_server_ops );
- return (struct pipe_server *) obj;
-}
-
static void init_pipe_end( struct pipe_end *pipe_end, struct named_pipe *pipe,
unsigned int pipe_flags, data_size_t buffer_size )
{
@@ -1387,42 +1379,30 @@ DECL_HANDLER(get_named_pipe_info)
DECL_HANDLER(set_named_pipe_info)
{
- struct pipe_server *server;
- struct pipe_client *client = NULL;
+ struct pipe_end *pipe_end;
- server = get_pipe_server_obj( current->process, req->handle, FILE_WRITE_ATTRIBUTES );
- if (!server)
+ pipe_end = (struct pipe_end *)get_handle_obj( current->process, req->handle,
+ FILE_WRITE_ATTRIBUTES, &pipe_server_ops );
+ if (!pipe_end)
{
if (get_error() != STATUS_OBJECT_TYPE_MISMATCH)
return;
clear_error();
- client = (struct pipe_client *)get_handle_obj( current->process, req->handle,
- 0, &pipe_client_ops );
- if (!client) return;
- if (!(server = client->server))
- {
- release_object( client );
- return;
- }
+ pipe_end = (struct pipe_end *)get_handle_obj( current->process, req->handle,
+ 0, &pipe_client_ops );
+ if (!pipe_end) return;
}
if ((req->flags & ~(NAMED_PIPE_MESSAGE_STREAM_READ | NAMED_PIPE_NONBLOCKING_MODE)) ||
- ((req->flags & NAMED_PIPE_MESSAGE_STREAM_READ) && !(server->pipe->flags & NAMED_PIPE_MESSAGE_STREAM_WRITE)))
+ ((req->flags & NAMED_PIPE_MESSAGE_STREAM_READ) && !(pipe_end->pipe->flags & NAMED_PIPE_MESSAGE_STREAM_WRITE)))
{
set_error( STATUS_INVALID_PARAMETER );
}
- else if (client)
- {
- client->pipe_end.flags = server->pipe->flags | req->flags;
- }
else
{
- server->pipe_end.flags = server->pipe->flags | req->flags;
+ pipe_end->flags = pipe_end->pipe->flags | req->flags;
}
- if (client)
- release_object(client);
- else
- release_object(server);
+ release_object( pipe_end );
}
More information about the wine-cvs
mailing list