/**
* collectd - src/collectd.c
- * Copyright (C) 2005 Florian octo Forster
+ * Copyright (C) 2005,2006 Florian octo Forster
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* exported variables
*/
time_t curtime;
-
-#if HAVE_LIBRRD
-int operating_mode;
-#endif
+int operating_mode;
static void sigIntHandler (int signal)
{
#endif
" Step "COLLECTD_STEP" seconds\n"
" Heartbeat "COLLECTD_HEARTBEAT" seconds\n"
- "\n"PACKAGE" "VERSION", http://verplant.org/collectd/\n"
+ "\n"PACKAGE" "VERSION", http://collectd.org/\n"
"by Florian octo Forster <octo@verplant.org>\n"
"for contributions see `AUTHORS'\n");
exit (0);
if (timeval_sub_timespec (&tv_next, &tv_now, &ts_wait) != 0)
{
- syslog (LOG_WARNING, "No sleeping because `timeval_sub_timespec' returned non-zero!");
+ syslog (LOG_WARNING, "Not sleeping because `timeval_sub_timespec' returned non-zero!");
continue;
}
#if HAVE_LIBRRD
static int start_server (void)
{
- /* FIXME use stack here! */
char *host;
char *type;
char *instance;
char *values;
- while (loop == 0)
+ int error_counter = 0;
+ int status;
+
+ while ((loop == 0) && (error_counter < 3))
{
- if (network_receive (&host, &type, &instance, &values) == 0)
- plugin_write (host, type, instance, values);
+ status = network_receive (&host, &type, &instance, &values);
+
+ if (status != 0)
+ {
+ if (status < 0)
+ error_counter++;
+ continue;
+ }
+ error_counter = 0;
+
+ plugin_write (host, type, instance, values);
if (host != NULL) free (host); host = NULL;
if (type != NULL) free (type); type = NULL;
return (1);
}
- fprintf (fh, "%d\n", getpid());
+ fprintf (fh, "%i\n", (int) getpid ());
fclose(fh);
return (0);
#if HAVE_LIBRRD
operating_mode = MODE_LOCAL;
+#else
+ operating_mode = MODE_CLIENT;
#endif
/* open syslog */
#if HAVE_LIBRRD
if (operating_mode == MODE_SERVER)
start_server ();
- else /* if (operating_mode == MODE_CLIENT || operating_mode == MODE_LOCAL) */
+ else /* if (operating_mode == MODE_CLIENT || operating_mode == MODE_LOCAL || operating_mode == MODE_LOG) */
#endif
start_client ();