prepare for the release of rrdtool-1.2.20
[rrdtool.git] / src / rrd_not_thread_safe.c
index 13160e6..0140ae1 100644 (file)
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.1.x  Copyright Tobias Oetiker, 1997 - 2002
+ * RRDtool 1.2.20  Copyright by Tobi Oetiker, 1997-2007
  * This file:     Copyright 2003 Peter Stamfest <peter@stamfest.at> 
  *                             & Tobias Oetiker
  * Distributed under the GPL
 #include "rrd_tool.h"
 #define MAXLEN 4096
 #define ERRBUFLEN 256
-static char rrd_error[MAXLEN] = "\0";
-static char rrd_liberror[ERRBUFLEN] = "\0";
+
+static char rrd_error[MAXLEN+10];
+static char rrd_liberror[ERRBUFLEN+10];
+static int  rrd_context_init = 0;
 /* The global context is very useful in the transition period to even
    more thread-safe stuff, it can be used whereever we need a context
    and do not need to worry about concurrency. */
 static struct rrd_context global_ctx = {
-    sizeof(rrd_error),
-    sizeof(rrd_liberror),
+    MAXLEN,
+    ERRBUFLEN,
     rrd_error, 
     rrd_liberror
 };
-#include <stdarg.h>
+/* #include <stdarg.h> */
 
-struct rrd_context *rrd_get_context() {
+struct rrd_context *rrd_get_context(void) {
+    if (! rrd_context_init ){
+       rrd_context_init = 1;
+        global_ctx.rrd_error[0]='\0';
+        global_ctx.lib_errstr[0]='\0';
+    }
     return &global_ctx;
 }