Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
e634cc7f
Commit
e634cc7f
authored
May 26, 2021
by
Zebediah Figura
Committed by
Alexandre Julliard
May 27, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
server: Clear FD_OOB instead of FD_READ when receiving OOB data.
Signed-off-by:
Zebediah Figura
<
z.figura12@gmail.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
b5e264a4
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
9 additions
and
5 deletions
+9
-5
socket.c
dlls/ntdll/unix/socket.c
+1
-0
server_protocol.h
include/wine/server_protocol.h
+2
-2
protocol.def
server/protocol.def
+1
-0
request.h
server/request.h
+1
-0
sock.c
server/sock.c
+2
-2
trace.c
server/trace.c
+2
-1
No files found.
dlls/ntdll/unix/socket.c
View file @
e634cc7f
...
...
@@ -223,6 +223,7 @@ static NTSTATUS sock_recv( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, voi
req
->
status
=
status
;
req
->
total
=
information
;
req
->
async
=
server_async
(
handle
,
&
async
->
io
,
event
,
apc
,
apc_user
,
io
);
req
->
oob
=
!!
(
unix_flags
&
MSG_OOB
);
status
=
wine_server_call
(
req
);
wait_handle
=
wine_server_ptr_handle
(
reply
->
wait
);
options
=
reply
->
options
;
...
...
include/wine/server_protocol.h
View file @
e634cc7f
...
...
@@ -1808,7 +1808,7 @@ struct set_socket_deferred_reply
struct
recv_socket_request
{
struct
request_header
__header
;
char
__pad_12
[
4
]
;
int
oob
;
async_data_t
async
;
unsigned
int
status
;
unsigned
int
total
;
...
...
@@ -6287,7 +6287,7 @@ union generic_reply
/* ### protocol_version begin ### */
#define SERVER_PROTOCOL_VERSION 70
6
#define SERVER_PROTOCOL_VERSION 70
7
/* ### protocol_version end ### */
...
...
server/protocol.def
View file @
e634cc7f
...
...
@@ -1468,6 +1468,7 @@ enum server_fd_type
/* Perform a recv on a socket */
@REQ(recv_socket)
int oob; /* are we receiving OOB data? */
async_data_t async; /* async I/O parameters */
unsigned int status; /* status of initial call */
unsigned int total; /* number of bytes already read */
...
...
server/request.h
View file @
e634cc7f
...
...
@@ -1068,6 +1068,7 @@ C_ASSERT( sizeof(struct enable_socket_event_request) == 32 );
C_ASSERT
(
FIELD_OFFSET
(
struct
set_socket_deferred_request
,
handle
)
==
12
);
C_ASSERT
(
FIELD_OFFSET
(
struct
set_socket_deferred_request
,
deferred
)
==
16
);
C_ASSERT
(
sizeof
(
struct
set_socket_deferred_request
)
==
24
);
C_ASSERT
(
FIELD_OFFSET
(
struct
recv_socket_request
,
oob
)
==
12
);
C_ASSERT
(
FIELD_OFFSET
(
struct
recv_socket_request
,
async
)
==
16
);
C_ASSERT
(
FIELD_OFFSET
(
struct
recv_socket_request
,
status
)
==
56
);
C_ASSERT
(
FIELD_OFFSET
(
struct
recv_socket_request
,
total
)
==
60
);
...
...
server/sock.c
View file @
e634cc7f
...
...
@@ -2452,8 +2452,8 @@ DECL_HANDLER(recv_socket)
/* are we shut down? */
if
(
status
==
STATUS_PENDING
&&
!
(
sock
->
state
&
FD_READ
))
status
=
STATUS_PIPE_DISCONNECTED
;
sock
->
pending_events
&=
~
FD_READ
;
sock
->
reported_events
&=
~
FD_READ
;
sock
->
pending_events
&=
~
(
req
->
oob
?
FD_OOB
:
FD_READ
)
;
sock
->
reported_events
&=
~
(
req
->
oob
?
FD_OOB
:
FD_READ
)
;
if
((
async
=
create_request_async
(
fd
,
get_fd_comp_flags
(
fd
),
&
req
->
async
)))
{
...
...
server/trace.c
View file @
e634cc7f
...
...
@@ -2124,7 +2124,8 @@ static void dump_set_socket_deferred_request( const struct set_socket_deferred_r
static
void
dump_recv_socket_request
(
const
struct
recv_socket_request
*
req
)
{
dump_async_data
(
" async="
,
&
req
->
async
);
fprintf
(
stderr
,
" oob=%d"
,
req
->
oob
);
dump_async_data
(
", async="
,
&
req
->
async
);
fprintf
(
stderr
,
", status=%08x"
,
req
->
status
);
fprintf
(
stderr
,
", total=%08x"
,
req
->
total
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment