rebuildhosts: Don't break when RED not online

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.
This commit is contained in:
Michael Tremer
2015-06-03 18:00:13 +02:00
parent bd33c33227
commit e528fb2c73

View File

@@ -79,16 +79,13 @@ int main(int argc, char *argv[])
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");
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")))
@@ -110,7 +107,8 @@ int main(int argc, char *argv[])
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))
{