projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Attempt to fix collectd/collectd#229 by doing user / group lookups before we fork.
[collectd.git]
/
src
/
utils_complain.c
diff --git
a/src/utils_complain.c
b/src/utils_complain.c
index
9d0f466
..
c3752bc
100644
(file)
--- a/
src/utils_complain.c
+++ b/
src/utils_complain.c
@@
-1,6
+1,6
@@
/**
* collectd - src/utils_complain.c
/**
* collectd - src/utils_complain.c
- * Copyright (C) 2006-20
07
Florian octo Forster
+ * Copyright (C) 2006-20
13
Florian octo Forster
* Copyright (C) 2008 Sebastian tokkee Harl
*
* This program is free software; you can redistribute it and/or modify it
* Copyright (C) 2008 Sebastian tokkee Harl
*
* This program is free software; you can redistribute it and/or modify it
@@
-21,6
+21,7
@@
* Sebastian tokkee Harl <sh at tokkee.org>
**/
* Sebastian tokkee Harl <sh at tokkee.org>
**/
+#include "collectd.h"
#include "utils_complain.h"
#include "plugin.h"
#include "utils_complain.h"
#include "plugin.h"
@@
-28,28
+29,28
@@
static int vcomplain (int level, c_complain_t *c,
const char *format, va_list ap)
{
static int vcomplain (int level, c_complain_t *c,
const char *format, va_list ap)
{
- time_t now;
+
cd
time_t now;
char message[512];
char message[512];
- now =
time (NULL
);
+ now =
cdtime (
);
if (c->last + c->interval > now)
return 0;
c->last = now;
if (c->last + c->interval > now)
return 0;
c->last = now;
- if (c->interval <
interval_g
)
- c->interval =
interval_g
;
+ if (c->interval <
plugin_get_interval ()
)
+ c->interval =
plugin_get_interval ()
;
else
c->interval *= 2;
else
c->interval *= 2;
- if (c->interval >
86400
)
- c->interval =
86400
;
+ if (c->interval >
TIME_T_TO_CDTIME_T (86400)
)
+ c->interval =
TIME_T_TO_CDTIME_T (86400)
;
vsnprintf (message, sizeof (message), format, ap);
message[sizeof (message) - 1] = '\0';
vsnprintf (message, sizeof (message), format, ap);
message[sizeof (message) - 1] = '\0';
- plugin_log (level, message);
+ plugin_log (level,
"%s",
message);
return 1;
} /* vcomplain */
return 1;
} /* vcomplain */
@@
-57,12
+58,9
@@
void c_complain (int level, c_complain_t *c, const char *format, ...)
{
va_list ap;
{
va_list ap;
- /* reset the old interval */
- if (c->interval < 0)
- c->interval *= -1;
-
va_start (ap, format);
va_start (ap, format);
- vcomplain (level, c, format, ap);
+ if (vcomplain (level, c, format, ap))
+ c->complained_once = 1;
va_end (ap);
} /* c_complain */
va_end (ap);
} /* c_complain */
@@
-70,16
+68,16
@@
void c_complain_once (int level, c_complain_t *c, const char *format, ...)
{
va_list ap;
{
va_list ap;
- if (c->
interval < 0
)
+ if (c->
complained_once
)
return;
va_start (ap, format);
if (vcomplain (level, c, format, ap))
return;
va_start (ap, format);
if (vcomplain (level, c, format, ap))
- c->
interval *= -
1;
+ c->
complained_once =
1;
va_end (ap);
} /* c_complain_once */
va_end (ap);
} /* c_complain_once */
-void c_release (int level, c_complain_t *c, const char *format, ...)
+void c_
do_
release (int level, c_complain_t *c, const char *format, ...)
{
char message[512];
va_list ap;
{
char message[512];
va_list ap;
@@
-88,13
+86,14
@@
void c_release (int level, c_complain_t *c, const char *format, ...)
return;
c->interval = 0;
return;
c->interval = 0;
+ c->complained_once = 0;
va_start (ap, format);
vsnprintf (message, sizeof (message), format, ap);
message[sizeof (message) - 1] = '\0';
va_end (ap);
va_start (ap, format);
vsnprintf (message, sizeof (message), format, ap);
message[sizeof (message) - 1] = '\0';
va_end (ap);
- plugin_log (level, message);
+ plugin_log (level,
"%s",
message);
} /* c_release */
/* vim: set sw=4 ts=4 tw=78 noexpandtab : */
} /* c_release */
/* vim: set sw=4 ts=4 tw=78 noexpandtab : */