GUI / httpd: misc.c - speed up status-overview (part 2)

Note: use cfe/bl nvram values if available (~95%)

tested with Asus RT-N18U / R7000, working
arm-sdk7
M_ars 4 years ago committed by pedro
parent 82a92b2d73
commit 994c7db1ab

@ -254,25 +254,42 @@ static char* get_cfeversion(char *buf)
char s[16] = "";
int len = 0;
char *netgear = nvram_get("board_id"); /* U12HXXXXXX_NETGEAR for FT mips and arm */
char *cfe_version = nvram_get("cfe_version"); /* Ex.: Netgear R7000 cfe_version=v1.0.22 ; for FT mips and arm */
char *bl_version = nvram_get("bl_version"); /* Ex.: Asus RT-N18U bl_version=2.0.0.9 ; for FT mips and arm */
strcpy(buf, "");
/* get ASUS Bootloader version */
if ((netgear == NULL) && ((f = popen("strings /dev/mtd0ro | grep bl_version | cut -d '=' -f2", "r")) != NULL)) {
if (fgets(s, 15, f) != NULL)
len = strlen(s);
pclose(f);
/* check nvram first to speed up */
/* Asus */
if (bl_version != NULL) {
len = strlen(bl_version);
strncpy(s, bl_version, sizeof(s)-1);
s[sizeof(s)-1] = '\0';
}
if (len == 0 && netgear != NULL && !strncmp(netgear, "U12H", 4)) { /* check for netgear router to speed up here! */
/* get NETGEAR CFE version */
if ((f = popen("strings /dev/mtd1ro | grep cfe_version | cut -d '=' -f2", "r")) != NULL) {
/* Netgear */
else if (cfe_version != NULL) {
len = strlen(cfe_version);
strncpy(s, cfe_version, sizeof(s)-1);
s[sizeof(s)-1] = '\0';
}
else {
/* get ASUS Bootloader version */
if ((netgear == NULL) && ((f = popen("strings /dev/mtd0ro | grep bl_version | cut -d '=' -f2", "r")) != NULL)) {
if (fgets(s, 15, f) != NULL)
len = strlen(s);
pclose(f);
}
if (len == 0 && netgear != NULL && !strncmp(netgear, "U12H", 4)) { /* check for netgear router to speed up here! */
/* get NETGEAR CFE version */
if ((f = popen("strings /dev/mtd1ro | grep cfe_version | cut -d '=' -f2", "r")) != NULL) {
if (fgets(s, 15, f) != NULL)
len = strlen(s);
pclose(f);
}
}
}
if (len == 0)

Loading…
Cancel
Save