projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
python: Addressed review comments
[collectd.git]
/
src
/
virt.c
diff --git
a/src/virt.c
b/src/virt.c
index
242d0d3
..
830db51
100644
(file)
--- a/
src/virt.c
+++ b/
src/virt.c
@@
-520,6
+520,13
@@
static int lv_connect(void) {
return 0;
}
return 0;
}
+static void lv_disconnect(void) {
+ if (conn != NULL)
+ virConnectClose(conn);
+ conn = NULL;
+ WARNING(PLUGIN_NAME " plugin: closed connection to libvirt");
+}
+
static int lv_read(user_data_t *ud) {
time_t t;
struct lv_read_instance *inst = NULL;
static int lv_read(user_data_t *ud) {
time_t t;
struct lv_read_instance *inst = NULL;
@@
-544,9
+551,8
@@
static int lv_read(user_data_t *ud) {
if ((last_refresh == (time_t)0) ||
((interval > 0) && ((last_refresh + interval) <= t))) {
if (refresh_lists(inst) != 0) {
if ((last_refresh == (time_t)0) ||
((interval > 0) && ((last_refresh + interval) <= t))) {
if (refresh_lists(inst) != 0) {
- if (conn != NULL)
- virConnectClose(conn);
- conn = NULL;
+ if (inst->id == 0)
+ lv_disconnect();
return -1;
}
last_refresh = t;
return -1;
}
last_refresh = t;
@@
-740,7
+746,8
@@
static int lv_init(void) {
if (virInitialize() != 0)
return -1;
if (virInitialize() != 0)
return -1;
- lv_connect();
+ if (lv_connect() != 0)
+ return -1;
DEBUG(PLUGIN_NAME " plugin: starting %i instances", nr_instances);
DEBUG(PLUGIN_NAME " plugin: starting %i instances", nr_instances);
@@
-929,10
+936,10
@@
static int refresh_lists(struct lv_read_instance *inst) {
}
/* Block devices. */
}
/* Block devices. */
- char *bd_xmlpath = "/domain/devices/disk/target[@dev]";
+ c
onst c
har *bd_xmlpath = "/domain/devices/disk/target[@dev]";
if (blockdevice_format == source)
bd_xmlpath = "/domain/devices/disk/source[@dev]";
if (blockdevice_format == source)
bd_xmlpath = "/domain/devices/disk/source[@dev]";
- xpath_obj = xmlXPathEval((xmlChar *)bd_xmlpath, xpath_ctx);
+ xpath_obj = xmlXPathEval((
const
xmlChar *)bd_xmlpath, xpath_ctx);
if (xpath_obj == NULL || xpath_obj->type != XPATH_NODESET ||
xpath_obj->nodesetval == NULL)
if (xpath_obj == NULL || xpath_obj->type != XPATH_NODESET ||
xpath_obj->nodesetval == NULL)
@@
-1171,9
+1178,7
@@
static int lv_shutdown(void) {
lv_fini_instance(i);
}
lv_fini_instance(i);
}
- if (conn != NULL)
- virConnectClose(conn);
- conn = NULL;
+ lv_disconnect();
ignorelist_free(il_domains);
il_domains = NULL;
ignorelist_free(il_domains);
il_domains = NULL;