You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Rebase against ec8485ec10e3c27b89ec5f1289bc8a3cdad5f3f6.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
From 32d3c69ae680a7b6f71e203ca33f882eb0b69c47 Mon Sep 17 00:00:00 2001
|
||||
From a469c846c5e2abc7a0a4c478b33aeaa83e53f6bb Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Fri, 15 Aug 2014 23:06:06 +0200
|
||||
Subject: ntdll: Move logic to check for broken pipe into a separate function.
|
||||
@@ -8,10 +8,10 @@ Subject: ntdll: Move logic to check for broken pipe into a separate function.
|
||||
1 file changed, 39 insertions(+), 36 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
|
||||
index a20c3e8..8de4b98 100644
|
||||
index 41dd1ae877..03864b7239 100644
|
||||
--- a/dlls/ntdll/file.c
|
||||
+++ b/dlls/ntdll/file.c
|
||||
@@ -411,6 +411,31 @@ NTSTATUS FILE_GetNtStatus(void)
|
||||
@@ -490,6 +490,31 @@ NTSTATUS FILE_GetNtStatus(void)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,9 +43,9 @@ index a20c3e8..8de4b98 100644
|
||||
/* helper function for NtReadFile and FILE_AsyncReadService */
|
||||
static NTSTATUS read_unix_fd(int fd, char *buf, ULONG *total, ULONG length,
|
||||
enum server_fd_type type, BOOL avail_mode)
|
||||
@@ -1557,44 +1582,22 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
|
||||
if ((status = server_get_unix_fd( handle, FILE_READ_DATA, &fd, &needs_close, NULL, NULL )))
|
||||
@@ -1719,44 +1744,22 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
|
||||
break;
|
||||
}
|
||||
|
||||
-#ifdef FIONREAD
|
||||
- if (ioctl( fd, FIONREAD, &avail ) != 0)
|
||||
@@ -103,5 +103,5 @@ index a20c3e8..8de4b98 100644
|
||||
}
|
||||
if (needs_close) close( fd );
|
||||
--
|
||||
2.1.3
|
||||
2.11.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 3f96971d0d54e5d32a57970c36cb55e3ad6ff7c8 Mon Sep 17 00:00:00 2001
|
||||
From bb9a6f2fb4431cb18e2a835808c02156bbd9d709 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 6 Jun 2015 01:21:05 +0200
|
||||
Subject: server: Return correct error codes for NtWriteFile when pipes are
|
||||
@@ -25,7 +25,7 @@ index ba365ed666..23f1a5f5f5 100644
|
||||
CloseHandle(hfile);
|
||||
|
||||
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
|
||||
index 899ebddabb..91316bd2c4 100644
|
||||
index 98a699e48f..25f59761cf 100644
|
||||
--- a/dlls/ntdll/file.c
|
||||
+++ b/dlls/ntdll/file.c
|
||||
@@ -1235,6 +1235,9 @@ static NTSTATUS write_unix_fd(int fd, const char *buf, ULONG *total, ULONG lengt
|
||||
@@ -39,10 +39,10 @@ index 899ebddabb..91316bd2c4 100644
|
||||
}
|
||||
}
|
||||
diff --git a/server/named_pipe.c b/server/named_pipe.c
|
||||
index 74a9a44dcf..9a8d8b37ca 100644
|
||||
index d310740165..2775fcab51 100644
|
||||
--- a/server/named_pipe.c
|
||||
+++ b/server/named_pipe.c
|
||||
@@ -119,6 +119,8 @@ struct named_pipe_device
|
||||
@@ -129,6 +129,8 @@ struct named_pipe_device
|
||||
struct namespace *pipes; /* named pipe namespace */
|
||||
};
|
||||
|
||||
@@ -51,7 +51,7 @@ index 74a9a44dcf..9a8d8b37ca 100644
|
||||
static void named_pipe_dump( struct object *obj, int verbose );
|
||||
static unsigned int named_pipe_map_access( struct object *obj, unsigned int access );
|
||||
static int named_pipe_link_name( struct object *obj, struct object_name *name, struct object *parent );
|
||||
@@ -155,6 +157,7 @@ static void pipe_end_queue_async( struct fd *fd, struct async *async, int type,
|
||||
@@ -167,6 +169,7 @@ static void pipe_end_reselect_async( struct fd *fd, struct async_queue *queue );
|
||||
/* server end functions */
|
||||
static void pipe_server_dump( struct object *obj, int verbose );
|
||||
static struct fd *pipe_server_get_fd( struct object *obj );
|
||||
@@ -59,7 +59,7 @@ index 74a9a44dcf..9a8d8b37ca 100644
|
||||
static void pipe_server_destroy( struct object *obj);
|
||||
static obj_handle_t pipe_server_flush( struct fd *fd, struct async *async, int blocking );
|
||||
static enum server_fd_type pipe_server_get_fd_type( struct fd *fd );
|
||||
@@ -180,7 +183,7 @@ static const struct object_ops pipe_server_ops =
|
||||
@@ -192,7 +195,7 @@ static const struct object_ops pipe_server_ops =
|
||||
NULL, /* unlink_name */
|
||||
no_open_file, /* open_file */
|
||||
no_alloc_handle, /* alloc_handle */
|
||||
@@ -68,15 +68,15 @@ index 74a9a44dcf..9a8d8b37ca 100644
|
||||
pipe_server_destroy /* destroy */
|
||||
};
|
||||
|
||||
@@ -201,6 +204,7 @@ static const struct fd_ops pipe_server_fd_ops =
|
||||
@@ -213,6 +216,7 @@ 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 );
|
||||
+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 );
|
||||
static enum server_fd_type pipe_client_get_fd_type( struct fd *fd );
|
||||
@@ -224,7 +228,7 @@ static const struct object_ops pipe_client_ops =
|
||||
static obj_handle_t pipe_client_ioctl( struct fd *fd, ioctl_code_t code, struct async *async,
|
||||
@@ -238,7 +242,7 @@ static const struct object_ops pipe_client_ops =
|
||||
NULL, /* unlink_name */
|
||||
no_open_file, /* open_file */
|
||||
no_alloc_handle, /* alloc_handle */
|
||||
@@ -85,8 +85,8 @@ index 74a9a44dcf..9a8d8b37ca 100644
|
||||
pipe_client_destroy /* destroy */
|
||||
};
|
||||
|
||||
@@ -418,6 +422,23 @@ static void do_disconnect( struct pipe_server *server )
|
||||
server->pipe_end.fd = NULL;
|
||||
@@ -482,6 +486,23 @@ static void pipe_end_destroy( struct pipe_end *pipe_end )
|
||||
free_async_queue( pipe_end->write_q );
|
||||
}
|
||||
|
||||
+static int pipe_server_close_handle( struct object *obj, struct process *process, obj_handle_t handle )
|
||||
@@ -109,7 +109,7 @@ index 74a9a44dcf..9a8d8b37ca 100644
|
||||
static void pipe_server_destroy( struct object *obj)
|
||||
{
|
||||
struct pipe_server *server = (struct pipe_server *)obj;
|
||||
@@ -446,6 +467,24 @@ static void pipe_server_destroy( struct object *obj)
|
||||
@@ -511,6 +532,24 @@ static void pipe_server_destroy( struct object *obj)
|
||||
release_object( server->pipe );
|
||||
}
|
||||
|
||||
@@ -135,10 +135,10 @@ index 74a9a44dcf..9a8d8b37ca 100644
|
||||
{
|
||||
struct pipe_client *client = (struct pipe_client *)obj;
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index e7a55d7a2d..f1e7af1d56 100644
|
||||
index 341a6f6085..9769bb9e7b 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -2427,6 +2427,7 @@ enum message_type
|
||||
@@ -2431,6 +2431,7 @@ enum message_type
|
||||
#define NAMED_PIPE_MESSAGE_STREAM_WRITE 0x0001
|
||||
#define NAMED_PIPE_MESSAGE_STREAM_READ 0x0002
|
||||
#define NAMED_PIPE_NONBLOCKING_MODE 0x0004
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From a5a9edf432ca2aecef11db6bde388730cc9eadf8 Mon Sep 17 00:00:00 2001
|
||||
From 657d43d3027ea116d3348542eac23d1d915258f0 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Wed, 24 Feb 2016 15:45:09 +0100
|
||||
Subject: server: Do not allow to queue async operation for broken pipes.
|
||||
@@ -8,10 +8,10 @@ Subject: server: Do not allow to queue async operation for broken pipes.
|
||||
1 file changed, 14 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/server/named_pipe.c b/server/named_pipe.c
|
||||
index 9a8d8b37ca..df9f5c4926 100644
|
||||
index 2775fcab51..3542c91b4a 100644
|
||||
--- a/server/named_pipe.c
|
||||
+++ b/server/named_pipe.c
|
||||
@@ -665,8 +665,20 @@ static obj_handle_t pipe_client_flush( struct fd *fd, struct async *async, int b
|
||||
@@ -811,8 +811,20 @@ static obj_handle_t pipe_end_write( struct fd *fd, struct async *async, int bloc
|
||||
static void pipe_end_queue_async( struct fd *fd, struct async *async, int type, int count )
|
||||
{
|
||||
struct pipe_end *pipe_end = get_fd_user( fd );
|
||||
@@ -33,7 +33,7 @@ index 9a8d8b37ca..df9f5c4926 100644
|
||||
+ default_fd_queue_async( fd, async, type, count );
|
||||
}
|
||||
|
||||
static inline int is_overlapped( unsigned int options )
|
||||
static void pipe_end_reselect_async( struct fd *fd, struct async_queue *queue )
|
||||
--
|
||||
2.11.0
|
||||
|
||||
|
Reference in New Issue
Block a user