Re-work the entropy patch to put the error section up front, and
the Linux code above the NetBSD code. No code change, except ensure to forward-declare the common functions in all cases.
This commit is contained in:
parent
27e6fe67ba
commit
2bafb593e3
2 changed files with 50 additions and 42 deletions
|
@ -1,4 +1,4 @@
|
|||
$NetBSD: distinfo,v 1.19 2015/09/01 09:00:04 he Exp $
|
||||
$NetBSD: distinfo,v 1.20 2015/09/01 09:31:46 he Exp $
|
||||
|
||||
SHA1 (collectd-5.5.0.tar.gz) = d24e284c1eae20c5e75b846c8b2612ab65bd5565
|
||||
RMD160 (collectd-5.5.0.tar.gz) = 2197758942a5fe56e4eabda3786f09d4138e943a
|
||||
|
@ -15,7 +15,7 @@ SHA1 (patch-src_config.h.in) = be17db23b6ee7a90ba57e73f073ed5be11c369c5
|
|||
SHA1 (patch-src_cpu.c) = 55b5cfc69bf0df279d1a12003eb6a8e681155e18
|
||||
SHA1 (patch-src_df.c) = 7e75dfbc72ecad48eb0eb7427a19329daf6b9a60
|
||||
SHA1 (patch-src_disk.c) = 159862e8ca1e841e3c4013c03ba03f059fdbbab5
|
||||
SHA1 (patch-src_entropy.c) = 7a522a6849d39bf4ed4704204a084790d27950ef
|
||||
SHA1 (patch-src_entropy.c) = 46d5357d8407584943e9259325989e64a8710cc0
|
||||
SHA1 (patch-src_irq.c) = 6b621474de35a5879105025d1a2848e4896b8479
|
||||
SHA1 (patch-src_libcollectclient_network__buffer.c) = e07d403d299613fa0885a0e7285849eb85510253
|
||||
SHA1 (patch-src_memory.c) = f48d50245176426e26af7fa1b1f4ff6fbf0b1d95
|
||||
|
|
|
@ -1,15 +1,51 @@
|
|||
$NetBSD: patch-src_entropy.c,v 1.3 2015/08/18 07:47:46 he Exp $
|
||||
$NetBSD: patch-src_entropy.c,v 1.4 2015/09/01 09:31:46 he Exp $
|
||||
|
||||
Provide a NetBSD implementation for graphing available entropy.
|
||||
|
||||
--- src/entropy.c.orig 2015-03-10 14:14:45.000000000 +0000
|
||||
+++ src/entropy.c
|
||||
@@ -29,27 +29,47 @@
|
||||
@@ -28,27 +28,16 @@
|
||||
#include "common.h"
|
||||
#include "plugin.h"
|
||||
|
||||
#if !KERNEL_LINUX
|
||||
-#if !KERNEL_LINUX
|
||||
-# error "No applicable input method."
|
||||
+# if KERNEL_NETBSD
|
||||
-#endif
|
||||
-
|
||||
-#define ENTROPY_FILE "/proc/sys/kernel/random/entropy_avail"
|
||||
+static void entropy_submit (double);
|
||||
+static int entropy_read (void);
|
||||
|
||||
-static void entropy_submit (double entropy)
|
||||
-{
|
||||
- value_t values[1];
|
||||
- value_list_t vl = VALUE_LIST_INIT;
|
||||
+#if !KERNEL_LINUX && !KERNEL_NETBSD
|
||||
+# error "No applicable input method."
|
||||
+#endif
|
||||
|
||||
- values[0].gauge = entropy;
|
||||
+#if KERNEL_LINUX
|
||||
|
||||
- vl.values = values;
|
||||
- vl.values_len = 1;
|
||||
- sstrncpy (vl.host, hostname_g, sizeof (vl.host));
|
||||
- sstrncpy (vl.plugin, "entropy", sizeof (vl.plugin));
|
||||
- sstrncpy (vl.type, "entropy", sizeof (vl.type));
|
||||
-
|
||||
- plugin_dispatch_values (&vl);
|
||||
-}
|
||||
+#define ENTROPY_FILE "/proc/sys/kernel/random/entropy_avail"
|
||||
|
||||
static int entropy_read (void)
|
||||
{
|
||||
@@ -74,6 +63,56 @@ static int entropy_read (void)
|
||||
|
||||
return (0);
|
||||
}
|
||||
+#endif /* KERNEL_LINUX */
|
||||
+
|
||||
+#if KERNEL_NETBSD
|
||||
+/* Provide a NetBSD implementation, partial from rndctl.c */
|
||||
+
|
||||
+#include <sys/types.h>
|
||||
|
@ -18,57 +54,29 @@ Provide a NetBSD implementation for graphing available entropy.
|
|||
+#include <sys/rnd.h>
|
||||
+#if HAVE_SYS_RNDIO_H
|
||||
+# include <sys/rndio.h>
|
||||
#endif
|
||||
+#endif
|
||||
+#include <paths.h>
|
||||
|
||||
-#define ENTROPY_FILE "/proc/sys/kernel/random/entropy_avail"
|
||||
+static void entropy_submit (double);
|
||||
+static int entropy_read (void);
|
||||
|
||||
-static void entropy_submit (double entropy)
|
||||
+
|
||||
+static int
|
||||
+entropy_read (void)
|
||||
{
|
||||
- value_t values[1];
|
||||
- value_list_t vl = VALUE_LIST_INIT;
|
||||
+{
|
||||
+ rndpoolstat_t rs;
|
||||
+ int fd;
|
||||
|
||||
- values[0].gauge = entropy;
|
||||
+
|
||||
+ fd = open(_PATH_URANDOM, O_RDONLY, 0644);
|
||||
+ if (fd < 0)
|
||||
+ return -1;
|
||||
|
||||
- vl.values = values;
|
||||
- vl.values_len = 1;
|
||||
- sstrncpy (vl.host, hostname_g, sizeof (vl.host));
|
||||
- sstrncpy (vl.plugin, "entropy", sizeof (vl.plugin));
|
||||
- sstrncpy (vl.type, "entropy", sizeof (vl.type));
|
||||
+
|
||||
+ if (ioctl(fd, RNDGETPOOLSTAT, &rs) < 0)
|
||||
+ return -1;
|
||||
|
||||
- plugin_dispatch_values (&vl);
|
||||
+
|
||||
+ entropy_submit (rs.curentropy);
|
||||
+
|
||||
+ close(fd);
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
+# else /* KERNEL_NETBSD */
|
||||
+# error "No applicable input method."
|
||||
+# endif
|
||||
+#else /* Linux */
|
||||
+}
|
||||
+
|
||||
+#define ENTROPY_FILE "/proc/sys/kernel/random/entropy_avail"
|
||||
+
|
||||
static int entropy_read (void)
|
||||
{
|
||||
double entropy;
|
||||
@@ -74,6 +94,23 @@ static int entropy_read (void)
|
||||
|
||||
return (0);
|
||||
}
|
||||
+#endif /* not Linux */
|
||||
+#endif /* KERNEL_NETBSD */
|
||||
+
|
||||
+static void entropy_submit (double entropy)
|
||||
+{
|
||||
|
|
Loading…
Reference in a new issue