]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: Ensure an empty string does not get printed for host/domain 11067/head
authorDonald Sharp <sharpd@nvidia.com>
Thu, 21 Apr 2022 18:13:01 +0000 (14:13 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Thu, 21 Apr 2022 18:13:01 +0000 (14:13 -0400)
End operator is showing:
!
frr version 8.0.1
frr defaults traditional
hostname test.example.com
domainname

domainname should not be printed in this case at all.  I do not
see any mechanism in current code that this could happen, but
what do I know?  Put some extra stupid insurance in place
to prevent bad config from being generated.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
lib/command.c

index 1989668bf09fb52902a395f1c7f75278d076f459..a4295100598b760db2f4053c1faa6a908e801996 100644 (file)
@@ -445,11 +445,15 @@ static bool full_cli;
 /* This function write configuration of this host. */
 static int config_write_host(struct vty *vty)
 {
-       if (cmd_hostname_get())
-               vty_out(vty, "hostname %s\n", cmd_hostname_get());
+       const char *name;
 
-       if (cmd_domainname_get())
-               vty_out(vty, "domainname %s\n", cmd_domainname_get());
+       name = cmd_hostname_get();
+       if (name && name[0] != '\0')
+               vty_out(vty, "hostname %s\n", name);
+
+       name = cmd_domainname_get();
+       if (name && name[0] != '\0')
+               vty_out(vty, "domainname %s\n", name);
 
        /* The following are all configuration commands that are not sent to
         * watchfrr.  For instance watchfrr is hardcoded to log to syslog so