X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fserial.c;h=430082220595c58f2b927089871a76e4e482a157;hb=b99f2ef5c262080cdd55d4dc056aaf23ba2ff907;hp=6ca752c6bc5e2141810c6d8aa6378daf03486035;hpb=6360474f4aa35dd1a587b6148ff88a23e6155132;p=collectd.git diff --git a/src/serial.c b/src/serial.c index 6ca752c6..43008222 100644 --- a/src/serial.c +++ b/src/serial.c @@ -18,59 +18,44 @@ * * Authors: * David Bacher - * Florian octo Forster + * Florian octo Forster **/ #include "collectd.h" #include "common.h" #include "plugin.h" -#if defined(KERNEL_LINUX) -# define SERIAL_HAVE_READ 1 -#else -# define SERIAL_HAVE_READ 0 +#if !KERNEL_LINUX +# error "No applicable input method." #endif -static data_source_t octets_dsrc[2] = -{ - {"rx", DS_TYPE_COUNTER, 0, 4294967295.0}, - {"tx", DS_TYPE_COUNTER, 0, 4294967295.0} -}; - -static data_set_t octets_ds = -{ - "serial_octets", 2, octets_dsrc -}; - -#if SERIAL_HAVE_READ static void serial_submit (const char *type_instance, - counter_t rx, counter_t tx) + derive_t rx, derive_t tx) { value_t values[2]; value_list_t vl = VALUE_LIST_INIT; - values[0].counter = rx; - values[1].counter = tx; + values[0].derive = rx; + values[1].derive = tx; vl.values = values; vl.values_len = 2; - vl.time = time (NULL); - strcpy (vl.host, hostname); - strcpy (vl.plugin, "serial"); - strncpy (vl.type_instance, type_instance, + sstrncpy (vl.host, hostname_g, sizeof (vl.host)); + sstrncpy (vl.plugin, "serial", sizeof (vl.plugin)); + sstrncpy (vl.type, "serial_octets", sizeof (vl.type)); + sstrncpy (vl.type_instance, type_instance, sizeof (vl.type_instance)); - plugin_dispatch_values ("serial_octets", &vl); + plugin_dispatch_values (&vl); } static int serial_read (void) { -#ifdef KERNEL_LINUX FILE *fh; char buffer[1024]; - counter_t rx = 0; - counter_t tx = 0; + derive_t rx = 0; + derive_t tx = 0; char *fields[16]; int i, numfields; @@ -80,7 +65,9 @@ static int serial_read (void) if ((fh = fopen ("/proc/tty/driver/serial", "r")) == NULL && (fh = fopen ("/proc/tty/driver/ttyS", "r")) == NULL) { - syslog (LOG_WARNING, "serial: fopen: %s", strerror (errno)); + char errbuf[1024]; + WARNING ("serial: fopen: %s", + sstrerror (errno, errbuf, sizeof (errbuf))); return (-1); } @@ -130,15 +117,9 @@ static int serial_read (void) fclose (fh); return (0); -#endif /* KERNEL_LINUX */ } /* int serial_read */ -#endif /* SERIAL_HAVE_READ */ void module_register (void) { - plugin_register_data_set (&octets_ds); - -#if SERIAL_HAVE_READ plugin_register_read ("serial", serial_read); -#endif /* SERIAL_HAVE_READ */ -} +} /* void module_register */