diff options
| author | Leandro Pereira <leandro@hardinfo.org> | 2016-07-24 15:41:00 -0300 | 
|---|---|---|
| committer | Leandro Pereira <leandro@hardinfo.org> | 2016-07-24 15:41:00 -0300 | 
| commit | b50d5ab3f0373220beaabd50b37cd4372a75fc01 (patch) | |
| tree | 5c8902a3575fe85318ee47d2c2e491fae8b1a590 /modules | |
| parent | eee1c0a85b02eb968545a41e816b7e74aeeef8d1 (diff) | |
Show bits of entropy available to /dev/(u)random
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/computer.c | 12 | ||||
| -rw-r--r-- | modules/computer/os.c | 13 | 
2 files changed, 22 insertions, 3 deletions
| diff --git a/modules/computer.c b/modules/computer.c index 8fabdb07..970927fb 100644 --- a/modules/computer.c +++ b/modules/computer.c @@ -96,9 +96,10 @@ gchar *hi_more_info(gchar * entry)  gchar *hi_get_field(gchar * field)  { -	setlocale(LC_ALL, "C"); //Load Average is not updated if locale is not C, switch locale to C      gchar *tmp; +    setlocale(LC_ALL, "C"); //Load Average is not updated if locale is not C, switch locale to C +      if (g_str_equal(field, "Memory")) {  	MemoryInfo *mi = computer_get_memory();  	tmp = g_strdup_printf(_("%dMB (%dMB used)"), mi->total, mi->used); @@ -112,6 +113,8 @@ gchar *hi_get_field(gchar * field)  	strftime(tmp, 64, "%c", localtime(&t));      } else if (g_str_equal(field, "Load Average")) {  	tmp = computer_get_formatted_loadavg(); +    } else if (g_str_equal(field, "Available entropy in /dev/random")) { +	tmp = computer_get_entropy_avail();      } else {  	tmp = g_strdup("");      } @@ -417,6 +420,7 @@ gchar *callback_os()      return g_strdup_printf(_("[$ShellParam$]\n"  			   "UpdateInterval$Uptime=10000\n"  			   "UpdateInterval$Load Average=1000\n" +			   "UpdateInterval$Available entropy in /dev/random=1000\n"  			   "[Version]\n"  			   "Kernel=%s\n"  			   "Version=%s\n" @@ -430,7 +434,8 @@ gchar *callback_os()  			   "Desktop Environment=%s\n"  			   "[Misc]\n"  			   "Uptime=...\n" -			   "Load Average=..."), +			   "Load Average=...\n" +			   "Available entropy in /dev/random=..."),  			   computer->os->kernel,  			   computer->os->kernel_version,  			   computer->os->libc, @@ -438,7 +443,8 @@ gchar *callback_os()  			   computer->os->hostname,  			   computer->os->username,  			   computer->os->language, -			   computer->os->homedir, computer->os->desktop); +			   computer->os->homedir, computer->os->desktop, +			   computer->os->entropy_avail);  }  gchar *callback_modules() diff --git a/modules/computer/os.c b/modules/computer/os.c index 41f8cb3a..3caf6c26 100644 --- a/modules/computer/os.c +++ b/modules/computer/os.c @@ -141,6 +141,17 @@ detect_desktop_environment(OperatingSystem * os)      }  } +gchar * +computer_get_entropy_avail(void) +{ +    gint bits = h_sysfs_read_int("/proc/sys/kernel/random", "entropy_avail"); +    if (bits < 200) +        return g_strdup_printf("%d bits (low)", bits); +    if (bits < 3000) +        return g_strdup_printf("%d bits (medium)", bits); +    return g_strdup_printf("%d bits (healthy)", bits); +} +  OperatingSystem *  computer_get_os(void)  { @@ -241,5 +252,7 @@ computer_get_os(void)      scan_languages(os);      detect_desktop_environment(os); +    os->entropy_avail = computer_get_entropy_avail(); +      return os;  } | 
