X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_thread_safe.c;h=ca99202ea478f8e6e31b622a94cded0718cf5ca7;hb=5fc7ff89bdbced9c593c566fea9840a269935dcd;hp=223b586735695501819b4af39927c5a5f33471f3;hpb=298b318acaf1147474ab9e97cac37c3608660efd;p=rrdtool.git diff --git a/src/rrd_thread_safe.c b/src/rrd_thread_safe.c index 223b586..ca99202 100644 --- a/src/rrd_thread_safe.c +++ b/src/rrd_thread_safe.c @@ -1,5 +1,5 @@ /***************************************************************************** - * RRDtool 1.1.x Copyright Tobias Oetiker, 1997 - 2002 + * RRDtool 1.2.23 Copyright by Tobi Oetiker, 1997-2007 * This file: Copyright 2003 Peter Stamfest * & Tobias Oetiker * Distributed under the GPL @@ -11,7 +11,7 @@ #include #include -#include +/* #include */ #include "rrd.h" #include "rrd_tool.h" @@ -51,15 +51,20 @@ struct rrd_context *rrd_get_context(void) { #ifdef HAVE_STRERROR_R const char *rrd_strerror(int err) { struct rrd_context *ctx = rrd_get_context(); - return strerror_r(err, ctx->lib_errstr, ctx->errlen); + if (strerror_r(err, ctx->lib_errstr, ctx->errlen)) + return "strerror_r faild. sorry!"; + else + return ctx->lib_errstr; } #else +#undef strerror const char *rrd_strerror(int err) { static pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER; struct rrd_context *ctx; ctx = rrd_get_context(); pthread_mutex_lock(&mtx); strncpy(ctx->lib_errstr, strerror(err), ctx->errlen); + ctx->lib_errstr[ctx->errlen]='\0'; pthread_mutex_unlock(&mtx); return ctx->lib_errstr; }