server: Use attributes instead of inherit flag in file requests.
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index 660ba1b..2e70296 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -214,7 +214,7 @@
SERVER_START_REQ( create_file )
{
req->access = access;
- req->inherit = (attr->Attributes & OBJ_INHERIT) != 0;
+ req->attributes = attr->Attributes;
req->sharing = sharing;
req->create = disposition;
req->options = options;
diff --git a/dlls/ntdll/server.c b/dlls/ntdll/server.c
index 7bd015c..43629a0 100644
--- a/dlls/ntdll/server.c
+++ b/dlls/ntdll/server.c
@@ -455,9 +455,9 @@
SERVER_START_REQ( alloc_file_handle )
{
- req->access = access;
- req->inherit = inherit;
- req->fd = fd;
+ req->access = access;
+ req->attributes = inherit ? OBJ_INHERIT : 0;
+ req->fd = fd;
if (!(ret = wine_server_call( req ))) *handle = reply->handle;
}
SERVER_END_REQ;
diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h
index 359affa..4677cfb 100644
--- a/include/wine/server_protocol.h
+++ b/include/wine/server_protocol.h
@@ -754,7 +754,7 @@
{
struct request_header __header;
unsigned int access;
- int inherit;
+ unsigned int attributes;
unsigned int sharing;
int create;
unsigned int options;
@@ -773,7 +773,7 @@
{
struct request_header __header;
unsigned int access;
- int inherit;
+ unsigned int attributes;
int fd;
};
struct alloc_file_handle_reply
@@ -4316,6 +4316,6 @@
struct query_symlink_reply query_symlink_reply;
};
-#define SERVER_PROTOCOL_VERSION 208
+#define SERVER_PROTOCOL_VERSION 209
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */
diff --git a/server/file.c b/server/file.c
index 4d13ca7..1b34c7a 100644
--- a/server/file.c
+++ b/server/file.c
@@ -356,7 +356,8 @@
if ((file = create_file( get_req_data(), get_req_data_size(), req->access,
req->sharing, req->create, req->options, req->attrs )))
{
- reply->handle = alloc_handle( current->process, file, req->access, req->inherit );
+ reply->handle = alloc_handle( current->process, file, req->access,
+ req->attributes & OBJ_INHERIT );
release_object( file );
}
}
@@ -375,7 +376,8 @@
}
if ((file = create_file_for_fd( fd, req->access, FILE_SHARE_READ | FILE_SHARE_WRITE )))
{
- reply->handle = alloc_handle( current->process, file, req->access, req->inherit );
+ reply->handle = alloc_handle( current->process, file, req->access,
+ req->attributes & OBJ_INHERIT );
release_object( file );
}
}
diff --git a/server/protocol.def b/server/protocol.def
index bbb842e..98bcb90 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -590,7 +590,7 @@
/* Create a file */
@REQ(create_file)
unsigned int access; /* wanted access rights */
- int inherit; /* inherit flag */
+ unsigned int attributes; /* object attributes */
unsigned int sharing; /* sharing flags */
int create; /* file create action */
unsigned int options; /* file options */
@@ -604,7 +604,7 @@
/* Allocate a file handle for a Unix fd */
@REQ(alloc_file_handle)
unsigned int access; /* wanted access rights */
- int inherit; /* inherit flag */
+ unsigned int attributes; /* object attributes */
int fd; /* file descriptor on the client side */
@REPLY
obj_handle_t handle; /* handle to the file */
diff --git a/server/trace.c b/server/trace.c
index eeb4e76..6ede1c2 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -1008,7 +1008,7 @@
static void dump_create_file_request( const struct create_file_request *req )
{
fprintf( stderr, " access=%08x,", req->access );
- fprintf( stderr, " inherit=%d,", req->inherit );
+ fprintf( stderr, " attributes=%08x,", req->attributes );
fprintf( stderr, " sharing=%08x,", req->sharing );
fprintf( stderr, " create=%d,", req->create );
fprintf( stderr, " options=%08x,", req->options );
@@ -1025,7 +1025,7 @@
static void dump_alloc_file_handle_request( const struct alloc_file_handle_request *req )
{
fprintf( stderr, " access=%08x,", req->access );
- fprintf( stderr, " inherit=%d,", req->inherit );
+ fprintf( stderr, " attributes=%08x,", req->attributes );
fprintf( stderr, " fd=%d", req->fd );
}