Merge branch 'ff/local'
[collectd.git] / src / utils_db_query.c
index b4ce09a..eb001de 100644 (file)
@@ -539,7 +539,8 @@ void udb_query_free_one (udb_query_t *q) /* {{{ */
  * Query public functions
  */
 int udb_query_create (udb_query_t ***ret_query_list, /* {{{ */
-    size_t *ret_query_list_len, oconfig_item_t *ci)
+    size_t *ret_query_list_len, oconfig_item_t *ci,
+    udb_query_create_callback_t cb)
 {
   udb_query_t **query_list;
   size_t        query_list_len;
@@ -606,6 +607,15 @@ int udb_query_create (udb_query_t ***ret_query_list, /* {{{ */
           q->name);
       status = udb_config_set_uint (&q->max_version, child);
     }
+    else if (cb != NULL)
+    {
+      status = (*cb) (q, child);
+      if (status != 0)
+      {
+        WARNING ("db query utils: The configuration callback failed "
+            "to handle `%s'.", child->key);
+      }
+    }
     else
     {
       WARNING ("db query utils: Query `%s': Option `%s' not allowed here.",