about summary refs log tree commit diff
path: root/src/tool/tool.c
diff options
context:
space:
mode:
authorFederico G. Schwindt <fgsch@lodoss.net>2013-10-16 11:15:27 +0100
committerFederico G. Schwindt <fgsch@lodoss.net>2013-10-16 16:32:06 +0100
commit17589534d0ccff05463910d1f0ba673d7d1630fd (patch)
treefd2d84d25e0219d4e073490541a5ae3eafaf073c /src/tool/tool.c
parentea26fd2840f6c7f286407e86f832d6ec5e93eeeb (diff)
downloadngircd-17589534d0ccff05463910d1f0ba673d7d1630fd.tar.gz
ngircd-17589534d0ccff05463910d1f0ba673d7d1630fd.zip
Add support for arc4random
If arc4random is present it will be used over the srand/rand interface.
This fixes some warnings in OpenBSD-current.
Diffstat (limited to 'src/tool/tool.c')
-rw-r--r--src/tool/tool.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/tool/tool.c b/src/tool/tool.c
index 1bb3ebe6..3b9cc255 100644
--- a/src/tool/tool.c
+++ b/src/tool/tool.c
@@ -144,11 +144,16 @@ ngt_RandomStr(char *String, const size_t len)
 	assert(String != NULL);
 
 	gettimeofday(&t, NULL);
+#ifndef HAVE_ARC4RANDOM
 	srand((unsigned)(t.tv_usec * t.tv_sec));
 
 	for (i = 0; i < len; ++i) {
 		String[i] = chars[rand() % (sizeof(chars) - 1)];
 	}
+#else
+	for (i = 0; i < len; ++i)
+		String[i] = chars[arc4random() % (sizeof(chars) - 1)];
+#endif
 	String[len] = '\0';
 
 	return String;