v2:
- gendispatch was modified to be able to generate more client related code
- Martin noticed that I added avahi-related field into my tests which caused
the tests to fail for him, since he doesn't compile with avahi - fixed
- coverity complained that clts might be uninitialized when calling
virObjectListFreeCount in virAdmServerListClients. Turned out as a
false-positive, but I wanted to silence it so I reworked the logic so that
the caller-supplied pointer (initialized to NULL) isn't touched until all the
memory operations succeeded. That not only didn't help, but since I removed the
ugly check before virObjectListFreeCount (because the method handles NULL
well), coverity started to complain that I might assign a signed value to
an unsigned function argument, which, although being true, is still a false
positive because the pointer will be NULL and will be handled correctly.
Erik Skultety (9):
rpc: virnetserverclient: Identify clients by an integer ID
rpc: virnetserverclient: Introduce new attribute conn_time to client
admin: Introduce virAdmClient client-side object
rpc: gendispatch: Tune it to support client structure
rpc: virnetserver: Support retrieval of a list of clients
include: admin: export connection transport constants
rpc: virnetserverclient: Implement client connection transport
retrieval
admin: Introduce listing clients
virt-admin: Introduce srv-clients-list command
daemon/admin.c | 15 +++
daemon/admin_server.c | 23 ++++
daemon/admin_server.h | 4 +
daemon/libvirtd.c | 4 +-
include/libvirt/libvirt-admin.h | 37 ++++++
src/admin/admin_protocol.x | 29 ++++-
src/admin/admin_remote.c | 6 +
src/admin_protocol-structs | 19 +++
src/datatypes.c | 35 +++++
src/datatypes.h | 47 +++++++
src/libvirt-admin.c | 131 +++++++++++++++++++
src/libvirt_admin_private.syms | 3 +
src/libvirt_admin_public.syms | 5 +
src/libvirt_remote.syms | 2 +
src/locking/lock_daemon.c | 2 +-
src/logging/log_daemon.c | 2 +-
src/lxc/lxc_controller.c | 2 +-
src/rpc/gendispatch.pl | 75 +++++++++--
src/rpc/virnetserver.c | 64 +++++++++-
src/rpc/virnetserver.h | 6 +
src/rpc/virnetserverclient.c | 106 ++++++++++++++--
src/rpc/virnetserverclient.h | 10 +-
tests/Makefile.am | 7 +
tests/virnetdaemondata/input-data-client-ids.json | 68 ++++++++++
.../input-data-client-timestamp.json | 70 ++++++++++
.../virnetdaemondata/output-data-admin-nomdns.json | 6 +
.../output-data-admin-server-names.json | 6 +
.../virnetdaemondata/output-data-anon-clients.json | 3 +
tests/virnetdaemondata/output-data-client-ids.json | 68 ++++++++++
.../output-data-client-timestamp.json | 70 ++++++++++
.../output-data-initial-nomdns.json | 3 +
tests/virnetdaemondata/output-data-initial.json | 3 +
.../output-data-no-keepalive-required.json | 6 +
tests/virnetdaemonmock.c | 34 +++++
tests/virnetdaemontest.c | 13 +-
tests/virnetserverclienttest.c | 2 +-
tools/virt-admin.c | 141 +++++++++++++++++++++
tools/virt-admin.pod | 7 +
38 files changed, 1095 insertions(+), 39 deletions(-)
create mode 100644 tests/virnetdaemondata/input-data-client-ids.json
create mode 100644 tests/virnetdaemondata/input-data-client-timestamp.json
create mode 100644 tests/virnetdaemondata/output-data-client-ids.json
create mode 100644 tests/virnetdaemondata/output-data-client-timestamp.json
create mode 100644 tests/virnetdaemonmock.c
--
2.4.11