diff options
author | Richard Levitte <levitte@openssl.org> | 2004-01-26 23:45:32 +0000 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2004-01-26 23:45:32 +0000 |
commit | 4de65cbc06c28f9512d88be159bd6f770fb15a14 (patch) | |
tree | f3e03fde76ddf09af9f1fe9ff69b127ab994c2c9 | |
parent | 27b2b78f9053dde311378689322903b65ed2e691 (diff) |
S_IFBLK and S_IFCHR may not exist in some places (like Windows), so
let's check for those macros, and if they aren't defined, let's assume
there aren't Unixly devices on this platform.
-rw-r--r-- | crypto/rand/randfile.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/crypto/rand/randfile.c b/crypto/rand/randfile.c index f1f250c5bf..8b072e0679 100644 --- a/crypto/rand/randfile.c +++ b/crypto/rand/randfile.c @@ -110,6 +110,7 @@ int RAND_load_file(const char *file, long bytes) in=fopen(file,"rb"); if (in == NULL) goto err; +#if defined(S_IFBLK) && !defined(S_IFCHR) if (sb.st_mode & (S_IFBLK | S_IFCHR)) { /* this file is a device. we don't want read an infinite number * of bytes from a random device, nor do we want to use buffered @@ -118,6 +119,7 @@ int RAND_load_file(const char *file, long bytes) bytes = (bytes == -1) ? 2048 : bytes; /* ok, is 2048 enough? */ setvbuf(in, NULL, _IONBF, 0); /* don't do buffered reads */ } +#endif for (;;) { if (bytes > 0) @@ -151,6 +153,7 @@ int RAND_write_file(const char *file) i=stat(file,&sb); if (i != -1) { +#if defined(S_IFBLK) && !defined(S_IFCHR) if (sb.st_mode & (S_IFBLK | S_IFCHR)) { /* this file is a device. we don't write back to it. * we "succeed" on the assumption this is some sort @@ -159,6 +162,7 @@ int RAND_write_file(const char *file) */ return(1); } +#endif } #if defined(O_CREAT) && !defined(OPENSSL_SYS_WIN32) |