[Spice-devel] [PATCH spice-server v6 00/10] SASL code improvements

Frediano Ziglio fziglio at redhat.com
Tue Jan 9 07:44:55 UTC 2018


SASL authentication code were a bit dodgy to see.
The series have 2 parts:
- a test for SASL code;
- some code refactory.

Test is not that straightforward, maybe some code should be put in
different files. On the other end I don't think the code that is
mocking SASL will be reused in other tests.
The refactory is mainly put all the authentication logic in one file
(red-stream.c) instead of having half in reds.c and the other half in
red-stream.c. This allows to present a single function instead of one
for each authentication step.

Changes since v5:
- make the client emulator more robust making possible to run on
  Valgrind which causes some timing and syscall difference
  (disconnection is detected earlier causing a write after server
  close the connection to fail).

Changes since v4:
- test cases where SASL APIs reply too large packets;
- test the way a failure is reported from server.

Changes since v3:
- tested with a MIPS machine (quite hard to do, I should write how to
  do it!);
- change way to iterate tests;
- lot of comments;
- some style changes;
- fixed a regression for big endian machines.

Changes since v2:
- removed patch to keep mechlist without copy, not documented really
  fine, safer to copy it.

Changes since v1:
- rebase on master;
- merged some patches;
- improved and fixed some comments;
- minor styles.

Frediano Ziglio (10):
  test-sasl: Initial SASL test
  test-sasl: Add code to mocking functions to test state
  test-sasl: Base test, connect using SASL
  test-sasl: Add tests for different mechanism names
  test-sasl: Add tests for different failures and cases
  test-sasl: Test how to server reports the failure
  Handle SASL initialisation mainly in red-stream.c
  red-stream: Handle properly endianness in SASL code
  red-stream: Unify start and step passes
  red-stream: Encapsulate all authentication state in RedSASLAuth

 configure.ac             |   1 +
 server/red-stream.c      | 330 ++++++++++-------------
 server/red-stream.h      |  11 +-
 server/reds.c            | 119 +--------
 server/tests/.gitignore  |   1 +
 server/tests/Makefile.am |   4 +
 server/tests/test-sasl.c | 665 +++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 825 insertions(+), 306 deletions(-)
 create mode 100644 server/tests/test-sasl.c

-- 
2.14.3



More information about the Spice-devel mailing list