libvirt/examples/c/admin/list_servers.c
Andrea Bolognani 571cb9db30 examples: Group all C programs together
All other examples are organized using the either the format/
or the format/category/ hierarchy already, and grouping all
C programs together removes the last remaining outliers.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Acked-by: Michal Privoznik <mprivozn@redhat.com>
2019-06-03 17:27:43 +02:00

43 lines
1.3 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <libvirt/libvirt-admin.h>
int main(void)
{
int ret = -1;
virAdmConnectPtr conn = NULL;
virAdmServerPtr *servers = NULL; /* where to store the servers */
virAdmServerPtr *tmp = NULL;
ssize_t i = 0;
int count = 0;
/* first, open a connection to the daemon */
if (!(conn = virAdmConnectOpen(NULL, 0)))
goto cleanup;
/* get the available servers on the default daemon - libvirtd */
if ((count = virAdmConnectListServers(conn, &servers, 0)) < 0)
goto cleanup;
/* let's print the available servers, we have 2 options how to interate
* over the returned list, use @count as the boundary or use the fact
* that @servers are guaranteed to contain 1 extra element NULL;
* this example uses the second option
*/
printf(" %-15s\n", "Server name");
printf("---------------\n");
for (tmp = servers; *tmp; tmp++)
printf(" %-15s\n", virAdmServerGetName(*tmp));
ret = 0;
cleanup:
/* Once finished, free the list of servers and close the connection
* properly, @conn will be deallocated automatically
*/
for (i = 0; i < count; i++)
virAdmServerFree(servers[i]);
free(servers);
virAdmConnectClose(conn);
return ret;
}