Code

Merge remote-tracking branch 'github/pr/1890' into collectd-5.6
authorFlorian Forster <octo@collectd.org>
Tue, 16 Aug 2016 05:19:31 +0000 (07:19 +0200)
committerFlorian Forster <octo@collectd.org>
Tue, 16 Aug 2016 05:19:31 +0000 (07:19 +0200)
src/ceph.c

index 5b7923915db798d1c62419c124addf136eecb56a..e6d3767b3140d786698f054796b23b4ed903b78f 100644 (file)
@@ -297,6 +297,11 @@ ceph_cb_number(void *ctx, const char *number_val, yajl_len_t number_len)
     {
         latency_type = 1;
 
+        /* depth >= 2  =>  (stack[-1] != NULL && stack[-2] != NULL) */
+        assert ((state->depth < 2)
+                || ((state->stack[state->depth - 1] != NULL)
+                    && (state->stack[state->depth - 2] != NULL)));
+
         /* Super-special case for filestore.journal_wr_bytes.avgcount: For
          * some reason, Ceph schema encodes this as a count/sum pair while all
          * other "Bytes" data (excluding used/capacity bytes for OSD space) uses
@@ -1579,8 +1584,6 @@ static int ceph_read(void)
 /******* lifecycle *******/
 static int ceph_init(void)
 {
-    int ret;
-
 #if defined(HAVE_SYS_CAPABILITY_H) && defined(CAP_DAC_OVERRIDE)
   if (check_capability (CAP_DAC_OVERRIDE) != 0)
   {
@@ -1598,9 +1601,13 @@ static int ceph_init(void)
 
     ceph_daemons_print();
 
-    ret = cconn_main_loop(ASOK_REQ_VERSION);
+    if (g_num_daemons < 1)
+    {
+        ERROR ("ceph plugin: No daemons configured. See the \"Daemon\" config option.");
+        return ENOENT;
+    }
 
-    return (ret) ? ret : 0;
+    return cconn_main_loop(ASOK_REQ_VERSION);
 }
 
 static int ceph_shutdown(void)