The hosts file was not regenerated when RED was not connected
which should not be happening.
This patch checks if the file exists. If not, the gateway
line will not be written to /etc/hosts.
freekeyvalues(kv);
kv = NULL;
freekeyvalues(kv);
kv = NULL;
- if (!(gw = fopen(CONFIG_ROOT "/red/remote-ipaddress", "r")))
- {
+ if ((gw = fopen(CONFIG_ROOT "/red/remote-ipaddress", "r"))) {
+ if (fgets(gateway, STRING_SIZE, gw) == NULL) {
+ fprintf(stderr, "Couldn't read remote-ipaddress\n");
+ exit(1);
+ }
+ } else {
fprintf(stderr, "Couldn't open remote-ipaddress file\n");
fprintf(stderr, "Couldn't open remote-ipaddress file\n");
- exit(1);
- }
-
- if (fgets(gateway, STRING_SIZE, gw) == NULL)
- {
- fprintf(stderr, "Couldn't read remote-ipaddress\n");
- exit(1);
}
if (!(fd = fopen(CONFIG_ROOT "/main/hosts", "r")))
}
if (!(fd = fopen(CONFIG_ROOT "/main/hosts", "r")))
else
fprintf(hosts, "%s\t%s\n",address,hostname);
else
fprintf(hosts, "%s\t%s\n",address,hostname);
- fprintf(hosts, "%s\tgateway\n",gateway);
+ if (strlen(gateway) > 0)
+ fprintf(hosts, "%s\tgateway\n", gateway);
while (fgets(buffer, STRING_SIZE, fd))
{
while (fgets(buffer, STRING_SIZE, fd))
{