projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'collectd-4.5' into collectd-4.6
[collectd.git]
/
src
/
bind.c
diff --git
a/src/bind.c
b/src/bind.c
index
b464f8d
..
44efcfd
100644
(file)
--- a/
src/bind.c
+++ b/
src/bind.c
@@
-21,31
+21,19
@@
* Florian Forster <octo at verplant.org>
**/
* Florian Forster <octo at verplant.org>
**/
-/* Set to C99 and POSIX code */
-#ifndef _ISOC99_SOURCE
-# define _ISOC99_SOURCE
-#endif
-#ifndef _POSIX_SOURCE
-# define _POSIX_SOURCE
-#endif
-#ifndef _POSIX_C_SOURCE
-# define _POSIX_C_SOURCE 200112L
-#endif
-#ifndef _REENTRANT
-# define _REENTRANT
-#endif
-#ifndef _XOPEN_SOURCE
-# define _XOPEN_SOURCE 600
-#endif
-#ifndef _BSD_SOURCE
-# define _BSD_SOURCE
-#endif
+#define _XOPEN_SOURCE 600 /* glibc2 needs this for strptime */
#include "collectd.h"
#include "common.h"
#include "plugin.h"
#include "configfile.h"
#include "collectd.h"
#include "common.h"
#include "plugin.h"
#include "configfile.h"
+/* Some versions of libcurl don't include this themselves and then don't have
+ * fd_set available. */
+#if HAVE_SYS_SELECT_H
+# include <sys/select.h>
+#endif
+
#include <curl/curl.h>
#include <libxml/parser.h>
#include <libxml/xpath.h>
#include <curl/curl.h>
#include <libxml/parser.h>
#include <libxml/xpath.h>
@@
-478,7
+466,7
@@
static int bind_xml_read_timestamp (const char *xpath_expression, /* {{{ */
return (-1);
}
return (-1);
}
- *ret_value =
timegm
(&tm);
+ *ret_value =
mktime
(&tm);
xmlXPathFreeObject (xpathObj);
return (0);
xmlXPathFreeObject (xpathObj);
return (0);
@@
-497,7
+485,7
@@
static int bind_parse_generic_name_value (const char *xpath_expression, /* {{{ *
list_callback_t list_callback,
void *user_data,
xmlDoc *doc, xmlXPathContext *xpathCtx,
list_callback_t list_callback,
void *user_data,
xmlDoc *doc, xmlXPathContext *xpathCtx,
- time_t current_time)
+ time_t current_time
, int ds_type
)
{
xmlXPathObject *xpathObj = NULL;
int num_entries;
{
xmlXPathObject *xpathObj = NULL;
int num_entries;
@@
-545,7
+533,10
@@
static int bind_parse_generic_name_value (const char *xpath_expression, /* {{{ *
value_t value;
int status;
value_t value;
int status;
- status = bind_xml_read_counter (doc, counter, &value.counter);
+ if (ds_type == DS_TYPE_GAUGE)
+ status = bind_xml_read_gauge (doc, counter, &value.gauge);
+ else
+ status = bind_xml_read_counter (doc, counter, &value.counter);
if (status != 0)
continue;
if (status != 0)
continue;
@@
-809,7
+800,7
@@
static int bind_xml_stats_handle_view (int version, xmlDoc *doc, /* {{{ */
list_info_ptr_t list_info =
{
plugin_instance,
list_info_ptr_t list_info =
{
plugin_instance,
- /* type = */ "dns_qtype"
+ /* type = */ "dns_qtype
_gauge
"
};
ssnprintf (plugin_instance, sizeof (plugin_instance), "%s-qtypes",
};
ssnprintf (plugin_instance, sizeof (plugin_instance), "%s-qtypes",
@@
-818,7
+809,7
@@
static int bind_xml_stats_handle_view (int version, xmlDoc *doc, /* {{{ */
bind_parse_generic_name_value (/* xpath = */ "rdtype",
/* callback = */ bind_xml_list_callback,
/* user_data = */ &list_info,
bind_parse_generic_name_value (/* xpath = */ "rdtype",
/* callback = */ bind_xml_list_callback,
/* user_data = */ &list_info,
- doc, path_ctx, current_time);
+ doc, path_ctx, current_time
, DS_TYPE_COUNTER
);
} /* }}} */
if (view->resolver_stats != 0) /* {{{ */
} /* }}} */
if (view->resolver_stats != 0) /* {{{ */
@@
-837,7
+828,7
@@
static int bind_xml_stats_handle_view (int version, xmlDoc *doc, /* {{{ */
bind_parse_generic_name_value ("resstat",
/* callback = */ bind_xml_table_callback,
/* user_data = */ &table_ptr,
bind_parse_generic_name_value ("resstat",
/* callback = */ bind_xml_table_callback,
/* user_data = */ &table_ptr,
- doc, path_ctx, current_time);
+ doc, path_ctx, current_time
, DS_TYPE_COUNTER
);
} /* }}} */
if (view->cacherrsets != 0) /* {{{ */
} /* }}} */
if (view->cacherrsets != 0) /* {{{ */
@@
-846,7
+837,7
@@
static int bind_xml_stats_handle_view (int version, xmlDoc *doc, /* {{{ */
list_info_ptr_t list_info =
{
plugin_instance,
list_info_ptr_t list_info =
{
plugin_instance,
- /* type = */ "dns_qtype"
+ /* type = */ "dns_qtype
_gauge
"
};
ssnprintf (plugin_instance, sizeof (plugin_instance), "%s-cache_rr_sets",
};
ssnprintf (plugin_instance, sizeof (plugin_instance), "%s-cache_rr_sets",
@@
-855,7
+846,7
@@
static int bind_xml_stats_handle_view (int version, xmlDoc *doc, /* {{{ */
bind_parse_generic_name_value (/* xpath = */ "cache/rrset",
/* callback = */ bind_xml_list_callback,
/* user_data = */ &list_info,
bind_parse_generic_name_value (/* xpath = */ "cache/rrset",
/* callback = */ bind_xml_list_callback,
/* user_data = */ &list_info,
- doc, path_ctx, current_time);
+ doc, path_ctx, current_time
, DS_TYPE_GAUGE
);
} /* }}} */
if (view->zones_num > 0)
} /* }}} */
if (view->zones_num > 0)
@@
-944,7
+935,7
@@
static int bind_xml_stats (int version, xmlDoc *doc, /* {{{ */
bind_parse_generic_name_value (/* xpath = */ "server/requests/opcode",
/* callback = */ bind_xml_list_callback,
/* user_data = */ &list_info,
bind_parse_generic_name_value (/* xpath = */ "server/requests/opcode",
/* callback = */ bind_xml_list_callback,
/* user_data = */ &list_info,
- doc, xpathCtx, current_time);
+ doc, xpathCtx, current_time
, DS_TYPE_COUNTER
);
}
/* XPath: server/queries-in/rdtype
}
/* XPath: server/queries-in/rdtype
@@
-969,7
+960,7
@@
static int bind_xml_stats (int version, xmlDoc *doc, /* {{{ */
bind_parse_generic_name_value (/* xpath = */ "server/queries-in/rdtype",
/* callback = */ bind_xml_list_callback,
/* user_data = */ &list_info,
bind_parse_generic_name_value (/* xpath = */ "server/queries-in/rdtype",
/* callback = */ bind_xml_list_callback,
/* user_data = */ &list_info,
- doc, xpathCtx, current_time);
+ doc, xpathCtx, current_time
, DS_TYPE_COUNTER
);
}
/* XPath: server/nsstats, server/nsstat
}
/* XPath: server/nsstats, server/nsstat
@@
-1019,7
+1010,7
@@
static int bind_xml_stats (int version, xmlDoc *doc, /* {{{ */
bind_parse_generic_name_value ("server/nsstat",
/* callback = */ bind_xml_table_callback,
/* user_data = */ &table_ptr,
bind_parse_generic_name_value ("server/nsstat",
/* callback = */ bind_xml_table_callback,
/* user_data = */ &table_ptr,
- doc, xpathCtx, current_time);
+ doc, xpathCtx, current_time
, DS_TYPE_COUNTER
);
}
}
}
}
@@
-1065,7
+1056,7
@@
static int bind_xml_stats (int version, xmlDoc *doc, /* {{{ */
bind_parse_generic_name_value ("server/zonestat",
/* callback = */ bind_xml_table_callback,
/* user_data = */ &table_ptr,
bind_parse_generic_name_value ("server/zonestat",
/* callback = */ bind_xml_table_callback,
/* user_data = */ &table_ptr,
- doc, xpathCtx, current_time);
+ doc, xpathCtx, current_time
, DS_TYPE_COUNTER
);
}
}
}
}
@@
-1112,7
+1103,7
@@
static int bind_xml_stats (int version, xmlDoc *doc, /* {{{ */
bind_parse_generic_name_value ("server/resstat",
/* callback = */ bind_xml_table_callback,
/* user_data = */ &table_ptr,
bind_parse_generic_name_value ("server/resstat",
/* callback = */ bind_xml_table_callback,
/* user_data = */ &table_ptr,
- doc, xpathCtx, current_time);
+ doc, xpathCtx, current_time
, DS_TYPE_COUNTER
);
}
}
}
}