Rebase against 1cc93e3f05bce5ae9758fad44f69f44e1462d81b.

This commit is contained in:
Sebastian Lackner
2017-02-23 14:23:18 +01:00
parent 4136b55f1c
commit 5b58419a0e
12 changed files with 536 additions and 655 deletions

View File

@@ -1,4 +1,4 @@
From 6e987dbcbba1b00bfef41ecd962973648bfab823 Mon Sep 17 00:00:00 2001
From 0cd60112c33592a78b573201b55bdcc0eb20e52e Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 17 Aug 2015 01:11:47 +0200
Subject: server: Store a reference to the parent object for pipe servers. (v2)
@@ -30,10 +30,10 @@ index 43c5ee46d71..9a1ba670ab7 100644
"name too short %s\n", wine_dbgstr_w(str->Buffer) );
trace( "got %s len %u\n", wine_dbgstr_w(str->Buffer), len );
diff --git a/server/named_pipe.c b/server/named_pipe.c
index 748651f701a..255c88b135d 100644
index e5c5c4968c4..bc4b6f08fde 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -147,6 +147,8 @@ static const struct object_ops named_pipe_ops =
@@ -150,6 +150,8 @@ static const struct object_ops named_pipe_ops =
/* server end functions */
static void pipe_server_dump( struct object *obj, int verbose );
static struct fd *pipe_server_get_fd( struct object *obj );
@@ -42,7 +42,7 @@ index 748651f701a..255c88b135d 100644
static int pipe_server_close_handle( struct object *obj, struct process *process, obj_handle_t handle );
static void pipe_server_destroy( struct object *obj);
static obj_handle_t pipe_server_flush( struct fd *fd, struct async *async, int blocking );
@@ -170,8 +172,8 @@ static const struct object_ops pipe_server_ops =
@@ -173,8 +175,8 @@ static const struct object_ops pipe_server_ops =
default_get_sd, /* get_sd */
default_set_sd, /* set_sd */
no_lookup_name, /* lookup_name */
@@ -53,7 +53,7 @@ index 748651f701a..255c88b135d 100644
no_open_file, /* open_file */
no_alloc_handle, /* alloc_handle */
pipe_server_close_handle, /* close_handle */
@@ -195,6 +197,8 @@ static const struct fd_ops pipe_server_fd_ops =
@@ -198,6 +200,8 @@ static const struct fd_ops pipe_server_fd_ops =
static void pipe_client_dump( struct object *obj, int verbose );
static int pipe_client_signaled( struct object *obj, struct wait_queue_entry *entry );
static struct fd *pipe_client_get_fd( struct object *obj );
@@ -62,7 +62,7 @@ index 748651f701a..255c88b135d 100644
static int pipe_client_close_handle( struct object *obj, struct process *process, obj_handle_t handle );
static void pipe_client_destroy( struct object *obj );
static obj_handle_t pipe_client_flush( struct fd *fd, struct async *async, int blocking );
@@ -216,8 +220,8 @@ static const struct object_ops pipe_client_ops =
@@ -219,8 +223,8 @@ static const struct object_ops pipe_client_ops =
default_get_sd, /* get_sd */
default_set_sd, /* set_sd */
no_lookup_name, /* lookup_name */
@@ -73,8 +73,8 @@ index 748651f701a..255c88b135d 100644
no_open_file, /* open_file */
no_alloc_handle, /* alloc_handle */
pipe_client_close_handle, /* close_handle */
@@ -396,6 +400,17 @@ static void do_disconnect( struct pipe_server *server )
server->fd = NULL;
@@ -399,6 +403,17 @@ static void do_disconnect( struct pipe_server *server )
server->pipe_end.fd = NULL;
}
+static int pipe_server_link_name( struct object *obj, struct object_name *name, struct object *parent )
@@ -91,7 +91,7 @@ index 748651f701a..255c88b135d 100644
static int pipe_server_close_handle( struct object *obj, struct process *process, obj_handle_t handle )
{
#ifdef __linux__
@@ -439,6 +454,17 @@ static void pipe_server_destroy( struct object *obj)
@@ -442,6 +457,17 @@ static void pipe_server_destroy( struct object *obj)
release_object( server->pipe );
}
@@ -109,7 +109,7 @@ index 748651f701a..255c88b135d 100644
static int pipe_client_close_handle( struct object *obj, struct process *process, obj_handle_t handle )
{
#ifdef __linux__
@@ -746,9 +772,10 @@ static struct pipe_server *get_pipe_server_obj( struct process *process,
@@ -761,9 +787,10 @@ static void init_pipe_end( struct pipe_end *pipe_end, unsigned int pipe_flags )
static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned int options,
unsigned int pipe_flags )
{
@@ -121,7 +121,7 @@ index 748651f701a..255c88b135d 100644
if (!server)
return NULL;
@@ -771,11 +798,13 @@ static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned
@@ -785,11 +812,13 @@ static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned
return server;
}
@@ -137,7 +137,7 @@ index 748651f701a..255c88b135d 100644
if (!client)
return NULL;
@@ -875,7 +904,7 @@ static struct object *named_pipe_open_file( struct object *obj, unsigned int acc
@@ -888,7 +917,7 @@ static struct object *named_pipe_open_file( struct object *obj, unsigned int acc
return NULL;
}