|
@@ -246,7 +246,7 @@ unsigned int isKernelSupportNAT()
|
|
|
if(fgets(buf, sizeof(buf), fp) != NULL)
|
|
|
{
|
|
|
sscanf(buf, "#%d", &version);
|
|
|
- DEBUG_INFO("Kernel version: %d\n", version);
|
|
|
+ //DEBUG_INFO("Kernel version: %d\n", version);
|
|
|
|
|
|
if(version >= 30)
|
|
|
result = YES;
|
|
@@ -2505,10 +2505,9 @@ int isReachableInternet()
|
|
|
char buf[512];
|
|
|
char tmp[512];
|
|
|
|
|
|
-
|
|
|
+ // Get ip address & net mask
|
|
|
strcpy(cmd, "ifconfig eth0");
|
|
|
fp = popen(cmd, "r");
|
|
|
-
|
|
|
if (fp != NULL)
|
|
|
{
|
|
|
while(fgets(buf, sizeof(buf), fp) != NULL)
|
|
@@ -2517,17 +2516,45 @@ int isReachableInternet()
|
|
|
{
|
|
|
sscanf(buf, "%*s%s", tmp);
|
|
|
substr(tmp, tmp, strspn(tmp, "addr:"), strlen(buf)-strspn(tmp, "addr:"));
|
|
|
-
|
|
|
if (strcmp(tmp, (char *)ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthIpAddress) != 0)
|
|
|
{
|
|
|
strcpy((char *) ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthIpAddress, tmp);
|
|
|
}
|
|
|
+
|
|
|
+ sscanf(buf, "%*s%*s%*s%s", tmp);
|
|
|
+ substr(tmp, tmp, strspn(tmp, "Mask:"), strlen(buf)-strspn(tmp, "Mask:"));
|
|
|
+ if (strcmp(tmp, (char *)ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthSubmaskAddress) != 0)
|
|
|
+ {
|
|
|
+ strcpy((char *) ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthSubmaskAddress, tmp);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
pclose(fp);
|
|
|
memset(buf, 0x00, sizeof(buf));
|
|
|
|
|
|
+ // Get gateway
|
|
|
+ fp = popen("ip route", "r");
|
|
|
+ if(fp == NULL)
|
|
|
+ result = FAIL;
|
|
|
+ else
|
|
|
+ {
|
|
|
+ while(fgets(buf, sizeof(buf), fp) != NULL)
|
|
|
+ {
|
|
|
+ if((strstr(buf, "default") != NULL) && (strstr(buf, "eth0") != NULL))
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(strstr(buf, "default") != NULL)
|
|
|
+ {
|
|
|
+ sscanf(buf, "%*s%*s%s", tmp);
|
|
|
+ substr((char*)ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthGatewayAddress, tmp, 0, strlen(tmp));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ pclose(fp);
|
|
|
+ memset(buf, 0x00, sizeof(buf));
|
|
|
+
|
|
|
+
|
|
|
for(int idx=0;idx<ARRAY_SIZE(valid_Internet);idx++)
|
|
|
{
|
|
|
sprintf(cmd, "ping -c 1 -w 3 -I eth0 %s", valid_Internet[idx]);
|