diff options
| author | Donald Sharp <sharpd@nvidia.com> | 2022-04-21 14:13:01 -0400 |
|---|---|---|
| committer | Donald Sharp <sharpd@nvidia.com> | 2022-04-21 14:13:01 -0400 |
| commit | a7141b85c8ded6f05edf51d5a61e063493fc85c7 (patch) | |
| tree | ea5fecfa5a5f06623beec644a148af2908f902c2 /lib/command.c | |
| parent | 60d296518b48c75ab4d21ed696e970b8d987a5ac (diff) | |
lib: Ensure an empty string does not get printed for host/domain
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>
Diffstat (limited to 'lib/command.c')
| -rw-r--r-- | lib/command.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/command.c b/lib/command.c index 1989668bf0..a429510059 100644 --- a/lib/command.c +++ b/lib/command.c @@ -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 |
