]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
rebuildhosts: Don't break when RED not online
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 3 Jun 2015 16:00:13 +0000 (18:00 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 3 Jun 2015 16:00:13 +0000 (18:00 +0200)
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.

src/misc-progs/rebuildhosts.c

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