[Spice-devel] [PATCH spice-server v4 00/20] Port SPICE server to Windows
Frediano Ziglio
fziglio at redhat.com
Wed Feb 6 13:58:36 UTC 2019
Windows support is useful to use with Qemu under Windows as host or
to implement servers like Xspice.
Mainly SPICE server uses lot of libraries to expose a TCP protocol.
As TCP is implemented with socket library which is quite portable was
not that hard to port.
Beside some minor feature (see REAME.Windows) all was ported.
During porting was choosen to keep Unix as the main platform, if a
change would require too much changes some Windows wrapper is
preferred instead. Not too complicated stuff, the main "wrapper" is
that Windows errors from socket are written back into errno to avoid
to change lot of code handling errors.
Changes since v3:
- reduce compatibility layer size:
- do not change function name if not required;
- use int instead of a new socket_t.
Changes since v2:
- better %m replacement;
- many comments updates;
- typo and grammar fixes;
- use int to store socket descriptors/handles;
- merge all v2 updates into a single series;
- split formatting string patch.
Frediano Ziglio (20):
Use proper format strings for spice_log
build: Detect Windows build and change some definitions
Avoids %m in formatting for Windows
windows: Undefine some conflicting preprocessor macros
tests: Provide alarm replacement for Windows
test-stat: Adjust delay checks
sys-socket: Introduce some utility to make sockets more portable
sys-socket: Add socket_newpair utility
net-utils: Use socket compatibility layer
reds: Use socket compatibility layer
red-stream: Use socket compatibility layer
dispatcher: Use socket compatibility layer
test-leaks: Use socket compatibility layer
test-channel: Use socket compatibility layer
windows: Disable code not working on Windows
dispatcher: Port to Windows
tests: Exclude tests that cannot work on Windows
red-stream: Fix SSL connection for Windows
Disable recording filtering for Windows
Add some notes for the Windows port
README.Windows | 18 ++
configure.ac | 20 ++-
server/Makefile.am | 2 +
server/char-device.c | 3 +-
server/dispatcher.c | 28 ++-
server/gstreamer-encoder.c | 4 +-
server/main-channel-client.c | 6 +-
server/memslot.c | 2 +-
server/mjpeg-encoder.c | 6 +-
server/net-utils.c | 11 ++
server/red-channel-client.c | 2 +
server/red-channel.c | 6 +-
server/red-client.c | 6 +-
server/red-common.h | 1 +
server/red-qxl.c | 4 +
server/red-record-qxl.c | 7 +
server/red-replay-qxl.c | 9 +-
server/red-stream.c | 48 ++++-
server/red-stream.h | 2 +
server/red-worker.c | 6 +
server/reds.c | 53 +++---
server/sound.c | 5 +-
server/stat-file.c | 2 +
server/sys-socket.c | 287 ++++++++++++++++++++++++++++++
server/sys-socket.h | 142 +++++++++++++++
server/tests/Makefile.am | 11 +-
server/tests/basic-event-loop.c | 2 +
server/tests/replay.c | 2 +
server/tests/stat-test.c | 12 +-
server/tests/test-channel.c | 9 +-
server/tests/test-leaks.c | 5 +-
server/tests/test-loop.c | 1 +
server/tests/test-record.c | 7 +-
server/tests/test-stream-device.c | 1 +
server/tests/win-alarm.c | 65 +++++++
server/tests/win-alarm.h | 26 +++
tools/Makefile.am | 2 +
37 files changed, 753 insertions(+), 70 deletions(-)
create mode 100644 README.Windows
create mode 100644 server/sys-socket.c
create mode 100644 server/sys-socket.h
create mode 100644 server/tests/win-alarm.c
create mode 100644 server/tests/win-alarm.h
--
2.20.1
More information about the Spice-devel
mailing list