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
1239663f
Commit
1239663f
authored
Apr 03, 2014
by
Erich E. Hoover
Committed by
Alexandre Julliard
Feb 10, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
server: Implement socket-specific ioctl() routine.
parent
4659081c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
5 deletions
+24
-5
Makefile.in
Makefile.in
+2
-1
sock.c
server/sock.c
+22
-4
No files found.
Makefile.in
View file @
1239663f
...
...
@@ -52,7 +52,8 @@ __tooldeps__: libs/port libs/wine libs/wpp
__builddeps__
:
__tooldeps__ include
.PHONY
:
depend check test testclean crosstest __tooldeps__ __builddeps__
loader server
:
libs/port libs/wine tools
loader
:
libs/port libs/wine tools
server
:
libs/port libs/wine tools include
fonts
:
tools/sfnt2fon
include
:
tools tools/widl
libs/wine tools
:
libs/port
...
...
server/sock.c
View file @
1239663f
...
...
@@ -52,6 +52,8 @@
#include "windef.h"
#include "winternl.h"
#include "winerror.h"
#define USE_WS_PREFIX
#include "winsock2.h"
#include "process.h"
#include "file.h"
...
...
@@ -86,9 +88,6 @@
#define FD_WINE_RAW 0x80000000
#define FD_WINE_INTERNAL 0xFFFF0000
/* Constants for WSAIoctl() */
#define WSA_FLAG_OVERLAPPED 0x01
struct
sock
{
struct
object
obj
;
/* object header */
...
...
@@ -121,6 +120,8 @@ static void sock_destroy( struct object *obj );
static
int
sock_get_poll_events
(
struct
fd
*
fd
);
static
void
sock_poll_event
(
struct
fd
*
fd
,
int
event
);
static
enum
server_fd_type
sock_get_fd_type
(
struct
fd
*
fd
);
static
obj_handle_t
sock_ioctl
(
struct
fd
*
fd
,
ioctl_code_t
code
,
const
async_data_t
*
async
,
int
blocking
,
const
void
*
data
,
data_size_t
size
);
static
void
sock_queue_async
(
struct
fd
*
fd
,
const
async_data_t
*
data
,
int
type
,
int
count
);
static
void
sock_reselect_async
(
struct
fd
*
fd
,
struct
async_queue
*
queue
);
static
void
sock_cancel_async
(
struct
fd
*
fd
,
struct
process
*
process
,
struct
thread
*
thread
,
client_ptr_t
iosb
);
...
...
@@ -155,7 +156,7 @@ static const struct fd_ops sock_fd_ops =
sock_poll_event
,
/* poll_event */
no_flush
,
/* flush */
sock_get_fd_type
,
/* get_fd_type */
default_fd_ioctl
,
/* ioctl */
sock_ioctl
,
/* ioctl */
sock_queue_async
,
/* queue_async */
sock_reselect_async
,
/* reselect_async */
sock_cancel_async
/* cancel_async */
...
...
@@ -523,6 +524,23 @@ static enum server_fd_type sock_get_fd_type( struct fd *fd )
return
FD_TYPE_SOCKET
;
}
obj_handle_t
sock_ioctl
(
struct
fd
*
fd
,
ioctl_code_t
code
,
const
async_data_t
*
async_data
,
int
blocking
,
const
void
*
data
,
data_size_t
size
)
{
struct
sock
*
sock
=
get_fd_user
(
fd
);
assert
(
sock
->
obj
.
ops
==
&
sock_ops
);
switch
(
code
)
{
case
WS_SIO_ADDRESS_LIST_CHANGE
:
/* intentional fallthrough, not yet supported */
default:
set_error
(
STATUS_NOT_SUPPORTED
);
return
0
;
}
}
static
void
sock_queue_async
(
struct
fd
*
fd
,
const
async_data_t
*
data
,
int
type
,
int
count
)
{
struct
sock
*
sock
=
get_fd_user
(
fd
);
...
...
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