From: Francois Dumontet Date: Tue, 12 Jul 2022 12:12:08 +0000 (+0200) Subject: bgp:change in showing neighbor description X-Git-Tag: base_8.4~221^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=64541ffa8f33404e32336d1905b73f89a7d26610;p=mirror%2Ffrr.git bgp:change in showing neighbor description currently "show bgp summary" and "sho bgp summary wide" commands provide a description string until a whitespace is occuring this respectively with size limits of 20 and 60 chars now theses two commands are providing strings with all characters until the last witespace before size limit Signed-off-by: Francois Dumontet --- diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index 19901792ea..d8c56f1ade 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -10392,9 +10392,24 @@ static void bgp_show_failed_summary(struct vty *vty, struct bgp *bgp, static char *bgp_peer_description_stripped(char *desc, uint32_t size) { static char stripped[BUFSIZ]; - uint32_t len = size > strlen(desc) ? strlen(desc) : size; + uint32_t i = 0; + uint32_t last_space = 0; - strlcpy(stripped, desc, len + 1); + while (i < size) { + if (*(desc + i) == 0) { + stripped[i] = '\0'; + return stripped; + } + if (i != 0 && *(desc + i) == ' ' && last_space != i - 1) + last_space = i; + stripped[i] = *(desc + i); + i++; + } + + if (last_space > size) + stripped[size + 1] = '\0'; + else + stripped[last_space] = '\0'; return stripped; }