Fix mg_random() for ESP32

This commit is contained in:
Sergey Lyubka committed 2021-10-04 19:47:24 +01:00
1 parent a204c80308
commit 6d398bd5c7
2 files changed
+6 -8

No files matched your search

+3 -4
View File
@@ -4215,6 +4215,7 @@ void mg_random(void *buf, size_t len) {
unsigned char *p = (unsigned char *) buf;
#if MG_ARCH == MG_ARCH_ESP32
while (len--) *p++ = (unsigned char) (esp_random() & 255);
done = true;
#elif MG_ARCH == MG_ARCH_WIN32
#elif MG_ARCH_UNIX
FILE *fp = fopen("/dev/urandom", "rb");
@@ -4223,10 +4224,8 @@ void mg_random(void *buf, size_t len) {
fclose(fp);
}
#endif
// Fallback to a pseudo random gen
if (!done) {
while (len--) *p++ = (unsigned char) (rand() & 255);
}
// If everything above did not work, fallback to a pseudo random generator
while (!done && len--) *p++ = (unsigned char) (rand() & 255);
}
#endif
+3 -4
View File
@@ -64,6 +64,7 @@ void mg_random(void *buf, size_t len) {
unsigned char *p = (unsigned char *) buf;
#if MG_ARCH == MG_ARCH_ESP32
while (len--) *p++ = (unsigned char) (esp_random() & 255);
done = true;
#elif MG_ARCH == MG_ARCH_WIN32
#elif MG_ARCH_UNIX
FILE *fp = fopen("/dev/urandom", "rb");
@@ -72,10 +73,8 @@ void mg_random(void *buf, size_t len) {
fclose(fp);
}
#endif
// Fallback to a pseudo random gen
if (!done) {
while (len--) *p++ = (unsigned char) (rand() & 255);
}
// If everything above did not work, fallback to a pseudo random generator
while (!done && len--) *p++ = (unsigned char) (rand() & 255);
}
#endif