Documentation for randint. Better randomness defaults. Fixes: #722
authorNigel Metheringham <nigel@exim.org>
Mon, 16 Nov 2009 19:15:36 +0000 (19:15 +0000)
committerNigel Metheringham <nigel@exim.org>
Mon, 16 Nov 2009 19:15:36 +0000 (19:15 +0000)
doc/doc-docbook/spec.xfpt
doc/doc-txt/ChangeLog
src/OS/os.h-FreeBSD
src/OS/os.h-NetBSD
src/OS/os.h-OpenBSD
src/src/exim.h

index b640dae..bf7a987 100644 (file)
@@ -1,4 +1,4 @@
-. $Cambridge: exim/doc/doc-docbook/spec.xfpt,v 1.68 2009/11/16 19:10:45 nm4 Exp $
+. $Cambridge: exim/doc/doc-docbook/spec.xfpt,v 1.69 2009/11/16 19:15:36 nm4 Exp $
 .
 . /////////////////////////////////////////////////////////////////////////////
 . This is the primary source of the Exim Manual. It is an xfpt document that is
@@ -9589,6 +9589,17 @@ For single-key lookup types, no quoting is ever necessary and this operator
 yields an unchanged string.
 
 
+.vitem &*${randint:*&<&'n'&>&*}*&
+.cindex "random number"
+This operator returns a somewhat random number which is less than the
+supplied number and is at least 0.  The quality of this randomness depends
+on how Exim was built; the values are not suitable for keying material.
+If Exim is linked against OpenSSL then RAND_pseudo_bytes() is used.
+Otherwise, the implementation may be arc4random(), random() seeded by
+srandomdev() or srandom(), or a custom implementation even weaker than
+random().
+
+
 .vitem &*${rfc2047:*&<&'string'&>&*}*&
 .cindex "expansion" "RFC 2047"
 .cindex "RFC 2047" "expansion operator"
index f823ee0..5d2f51e 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.595 2009/11/16 19:10:45 nm4 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.596 2009/11/16 19:15:36 nm4 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -10,6 +10,8 @@ TK/01 Bugzilla 912: Fix DKIM segfault on empty headers/body
 
 NM/01 Bugzilla 913: Documentation fix for gnutls_* options.
 
+NM/02 Bugzilla 722: Documentation for randint.  Better randomness defaults.
+
 
 Exim version 4.70
 -----------------
index 915f3b1..118d250 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/OS/os.h-FreeBSD,v 1.3 2006/03/16 12:25:24 ph10 Exp $ */
+/* $Cambridge: exim/src/OS/os.h-FreeBSD,v 1.4 2009/11/16 19:15:36 nm4 Exp $ */
 
 /* Exim: OS-specific C header file for FreeBSD */
 
@@ -7,6 +7,8 @@
 #define HAVE_MMAP
 #define HAVE_SYS_MOUNT_H
 #define SIOCGIFCONF_GIVES_ADDR
+#define HAVE_SRANDOMDEV
+#define HAVE_ARC4RANDOM
 
 typedef struct flock flock_t;
 
index 234f51c..27e09e3 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/OS/os.h-NetBSD,v 1.5 2009/10/20 12:39:47 nm4 Exp $ */
+/* $Cambridge: exim/src/OS/os.h-NetBSD,v 1.6 2009/11/16 19:15:36 nm4 Exp $ */
 
 /* Exim: OS-specific C header file for NetBSD */
 
@@ -7,6 +7,7 @@
 #define HAVE_MMAP
 #define HAVE_SYS_MOUNT_H
 #define SIOCGIFCONF_GIVES_ADDR
+#define HAVE_ARC4RANDOM
 
 typedef struct flock flock_t;
 
index 60eceb2..dda8513 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/OS/os.h-OpenBSD,v 1.1 2004/10/06 15:07:39 ph10 Exp $ */
+/* $Cambridge: exim/src/OS/os.h-OpenBSD,v 1.2 2009/11/16 19:15:36 nm4 Exp $ */
 
 /* Exim: OS-specific C header file for OpenBSD */
 
@@ -6,6 +6,7 @@
 #define HAVE_MMAP
 #define HAVE_SYS_MOUNT_H
 #define SIOCGIFCONF_GIVES_ADDR
+#define HAVE_ARC4RANDOM
 
 typedef struct flock flock_t;
 
index 34fb118..61a7f25 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/exim.h,v 1.25 2009/06/10 07:34:04 tom Exp $ */
+/* $Cambridge: exim/src/src/exim.h,v 1.26 2009/11/16 19:15:36 nm4 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -17,6 +17,11 @@ most of these includes. */
 
 #define HAVE_STATFS
 
+/* Similarly, assume most systems have srandom() unless os.h undefines it.
+This call dates back at least as far as SUSv2. */
+
+#define HAVE_SRANDOM
+
 /* First of all include the os-specific header, which might set things that
 are needed by any of the other headers, including system headers. */