* in 1.3: Changed types used in rrd_file_t from off_t to size_t to prevent: warning...
[rrdtool.git] / src / rrd_info.c
index 174bf1a..73407a9 100644 (file)
@@ -21,9 +21,13 @@ char     *sprintf_alloc(
     char *fmt,
     ...)
 {
-    int       maxlen = 1024 + strlen(fmt);
     char     *str = NULL;
     va_list   argp;
+#ifdef HAVE_VASPRINTF
+       va_start( argp, fmt );
+       vasprintf( &str, fmt, argp );
+#else
+    int       maxlen = 1024 + strlen(fmt);
     str = (char*)malloc(sizeof(char) * (maxlen + 1));
     if (str != NULL) {
         va_start(argp, fmt);
@@ -33,6 +37,7 @@ char     *sprintf_alloc(
         vsprintf(str, fmt, argp);
 #endif
     }
+#endif // HAVE_VASPRINTF
     va_end(argp);
     return str;
 }
@@ -164,6 +169,9 @@ rrd_info_t *rrd_info_r(
     info.u_cnt = rrd.live_head->last_up;
     cd = rrd_info_push(cd, sprintf_alloc("last_update"), RD_I_CNT, info);
 
+    info.u_cnt = rrd_get_header_size(&rrd);
+    cd = rrd_info_push(cd, sprintf_alloc("header_size"), RD_I_CNT, info);
+
     for (i = 0; i < rrd.stat_head->ds_cnt; i++) {
 
         info.u_str = rrd.ds_def[i].dst;