tor_assert(errno != EAGAIN);
tor_assert(errno != EINTR);
- /* Probably ENOSYS. */
- log_warn(LD_CRYPTO, "Can't get entropy from getrandom().");
+ /* Useful log message for errno. */
+ if (errno == ENOSYS) {
+ log_warn(LD_CRYPTO, "This warning is caused by ENOSYS error."
+ " You are running a version of Tor built to support"
+ " getrandom(), but the kernel is too old and doesn't"
+ " implement this function.");
+ } else {
+ log_warn(LD_CRYPTO, "Can't get entropy from getrandom(). %s error.",
+ strerror(errno));
+ }
+
getrandom_works = 0; /* Don't bother trying again. */
return -1;
/* LCOV_EXCL_STOP */