[Spice-devel] [PATCH spice-server 00/23] WebSocket support

Frediano Ziglio fziglio at redhat.com
Tue Jun 25 16:11:24 UTC 2019


Updated a longstanding patch for WebSocket support.

This includes:
- style updates:
  - types (C99 instead of GLib);
  - memory allocation (GLib instead of SPICE functions);
- support for Windows;
- different fixes;
- automatic tests using Autobahn Testsuite;
- some missing features:
  - PING/PONG messages;
  - empty (0 bytes) frames.

Frediano Ziglio (22):
  test-glib-compat: Fix G_PID_FORMAT definition for old systems
  reds: Fix SSL_CTX_set_ecdh_auto call for some old OpenSSL
  websocket: Simplify and fix constrain_iov
  websocket: Move RedsWebSocket to header
  websocket: Make websocket function more ABI compatibles with RedStream
  websocket: Make websocket_ack_close static
  websocket: New interface to create RedsWebSocket
  websocket: Better encapsulation
  websocket: Detect and handle some header error
  websocket: Better variable types
  websocket: Propagate some variable
  websocket: Fix updating remaining bytes to write in websocket_write
  websocket: Avoid possible server crash using websockets
  websocket: Support correctly protocol values
  websocket: Handle case if server cannot write the header entirely
  websocket: Avoids to write close frame in the middle of data
  websocket: Handle PING and PONG frames
  test-websocket: Write a test helper to make possible to run Autobahn
    testsuite
  websocket: Do not require "Sec-WebSocket-Protocol" header
  websocket: Handle text data
  websocket: Handle continuation and 0-size frames
  ci: Add test for websockets

Jeremy White (1):
  Add support for clients connecting with the WebSocket protocol.

 .gitlab-ci.yml                     |  20 +
 configure.ac                       |   9 +
 server/Makefile.am                 |   2 +
 server/meson.build                 |   2 +
 server/red-stream.c                |  56 ++
 server/red-stream.h                |   2 +
 server/reds.c                      |  15 +
 server/tests/.gitignore            |   1 +
 server/tests/Makefile.am           |   6 +
 server/tests/autobahn-check-report |  18 +
 server/tests/fuzzingclient.json    |  11 +
 server/tests/meson.build           |   1 +
 server/tests/test-glib-compat.h    |   2 +-
 server/tests/test-websocket.c      | 299 +++++++++++
 server/websocket.c                 | 796 +++++++++++++++++++++++++++++
 server/websocket.h                 |  43 ++
 16 files changed, 1282 insertions(+), 1 deletion(-)
 create mode 100755 server/tests/autobahn-check-report
 create mode 100644 server/tests/fuzzingclient.json
 create mode 100644 server/tests/test-websocket.c
 create mode 100644 server/websocket.c
 create mode 100644 server/websocket.h

-- 
2.20.1



More information about the Spice-devel mailing list