I also think a truncated message is way more useful than a replacement
which throws away the content of the message!

Jeremie Courreges-Anglas <[email protected]> wrote:

> On Sat, Oct 19 2019, Claudio Jeker <[email protected]> wrote:
> > bgpd supports up to 255 byte shutdown communications. So the manpage is
> > not telling the truth. Also I don't think it is helpful to mention the
> > limit at all. bgpctl will exit with 'shutdown reason too long' if the text
> > is too long which is good enough. For best interop people should keep the
> > shutdown message as simple and short as possible.
> 
> What about just truncating the shutdown message (possibly with a visible
> marker like '@')?
> 
> This way bgpctl would still send the message to the peer, which is nicer
> in unattended runs.  But maybe I'm overthinking this.  Diff below very
> lightly tested as I have no bgpd setup at hand.  The diff only touches
> bgpctl, people should probably keep their config files free of such
> problems.
> 
> --8<--
> russell /usr/src/usr.sbin/bgpctl$ obj/bgpctl nei 1.1.1.1 down 'lll[...]llll'
> bgpctl: shutdown reason too long, truncated
> bgpctl: connect: /var/run/bgpd.sock.0: No such file or directory
> -->8--
> 
> 
> 
> Index: parser.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/bgpctl/parser.c,v
> retrieving revision 1.99
> diff -u -p -r1.99 parser.c
> --- parser.c  27 Sep 2019 10:34:54 -0000      1.99
> +++ parser.c  19 Oct 2019 12:58:29 -0000
> @@ -648,8 +648,10 @@ match_token(int *argc, char **argv[], co
>                       if (!match && word != NULL && wordlen > 0) {
>                               if (strlcpy(res.shutcomm, word,
>                                   sizeof(res.shutcomm)) >=
> -                                 sizeof(res.shutcomm))
> -                                     errx(1, "shutdown reason too long");
> +                                 sizeof(res.shutcomm)) {
> +                                     warnx("shutdown reason too long, "
> +                                         "truncated");
> +                             }
>                               match++;
>                               t = &table[i];
>                       }
> 
> 
> -- 
> jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE
> 

Reply via email to