[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [Libvir] [patch 1/3] Add UUID generation to qemud



Mark McLoughlin wrote:

+static int
+qemudGenerateRandomBytes(unsigned char *buf,
+                         int buflen)
+{
+    int fd;
+
+    if ((fd = open("/dev/urandom", O_RDONLY)) < 0)
+        return errno;
+
+    while (buflen > 0) {
+        int n;
+
+        if ((n = read(fd, buf, buflen)) <= 0) {
+            if (errno == EINTR)
+                continue;
+            close(fd);
+            return n < 0 ? errno : ENODATA;
+        }
+
+        buf += n;
+        buflen -= n;
+    }
+
+    close(fd);
+
+    return 0;
+}

This function would actually be quite useful as a generally available function. In the remote patch I have added the following to configure.in:

dnl /dev/urandom
AC_CHECK_FILES([/dev/urandom])

and then in C code I can write:

#if HAVE__DEV_URANDOM      /* NB double underscore */
 // random blah blah
#else
 // pseudorandom blah blah
#endif

Rich.

--
Emerging Technologies, Red Hat  http://et.redhat.com/~rjones/
64 Baker Street, London, W1U 7DF     Mobile: +44 7866 314 421
 "[Negative numbers] darken the very whole doctrines of the equations
 and make dark of the things which are in their nature excessively
 obvious and simple" (Francis Maseres FRS, mathematician, 1759)

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]