+ /* XPath: server/zonestats, server/zonestat, server/counters[@type='zonestat']
+ * Variables: NotifyOutv4, NotifyOutv6, NotifyInv4, NotifyInv6, NotifyRej,
+ * SOAOutv4, SOAOutv6, AXFRReqv4, AXFRReqv6, IXFRReqv4, IXFRReqv6,
+ * XfrSuccess, XfrFail
+ * Layout v3:
+ * <counters type="zonestat"
+ * <counter name="NotifyOutv4">0</counter>
+ * <counter name="NotifyOutv6">0</counter>
+ * :
+ * </counter>
+ */
+ if (global_zone_maint_stats)
+ {
+ translation_table_ptr_t table_ptr =
+ {
+ zonestats_translation_table,
+ zonestats_translation_table_length,
+ /* plugin_instance = */ "global-zone_maint_stats"
+ };
+
+ bind_parse_generic_name_attr_value_list ("server/counters[@type='zonestat']",
+ /* callback = */ bind_xml_table_callback,
+ /* user_data = */ &table_ptr,
+ doc, xpathCtx, current_time, DS_TYPE_COUNTER);
+ }
+
+ /* XPath: server/resstats, server/counters[@type='resstat']
+ * Variables: Queryv4, Queryv6, Responsev4, Responsev6, NXDOMAIN, SERVFAIL,
+ * FORMERR, OtherError, EDNS0Fail, Mismatch, Truncated, Lame,
+ * Retry, GlueFetchv4, GlueFetchv6, GlueFetchv4Fail,
+ * GlueFetchv6Fail, ValAttempt, ValOk, ValNegOk, ValFail
+ * Layout v3:
+ * <counters type="resstat"
+ * <counter name="Queryv4">0</counter>
+ * <counter name="Queryv6">0</counter>
+ * :
+ * </counter>
+ */
+ if (global_resolver_stats != 0)
+ {
+ translation_table_ptr_t table_ptr =
+ {
+ resstats_translation_table,
+ resstats_translation_table_length,
+ /* plugin_instance = */ "global-resolver_stats"
+ };
+
+ bind_parse_generic_name_attr_value_list ("server/counters[@type='resstat']",
+ /* callback = */ bind_xml_table_callback,
+ /* user_data = */ &table_ptr,
+ doc, xpathCtx, current_time, DS_TYPE_COUNTER);
+ }
+} /* }}} bind_xml_stats_v3 */
+
+static void bind_xml_stats_v1_v2 (int version, xmlDoc *doc, /* {{{ */
+ xmlXPathContext *xpathCtx, xmlNode *statsnode, time_t current_time)
+{
+ /* XPath: server/requests/opcode, server/counters[@type='opcode']