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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list