diff options
Diffstat (limited to 'usr.sbin/bgpctl/bgpctl.c')
| -rw-r--r-- | usr.sbin/bgpctl/bgpctl.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/usr.sbin/bgpctl/bgpctl.c b/usr.sbin/bgpctl/bgpctl.c index ab1a5b58668..7a62e7b8577 100644 --- a/usr.sbin/bgpctl/bgpctl.c +++ b/usr.sbin/bgpctl/bgpctl.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bgpctl.c,v 1.99 2006/01/24 10:01:14 henning Exp $ */ +/* $OpenBSD: bgpctl.c,v 1.100 2006/01/24 15:28:03 henning Exp $ */ /* * Copyright (c) 2003 Henning Brauer <henning@openbsd.org> @@ -47,6 +47,7 @@ int main(int, char *[]); char *fmt_peer(const struct peer_config *, int); void show_summary_head(void); int show_summary_msg(struct imsg *, int); +int show_summary_terse_msg(struct imsg *, int); int show_neighbor_msg(struct imsg *, enum neighbor_views); void print_neighbor_capa_mp_safi(u_int8_t); void print_neighbor_msgstats(struct peer *); @@ -151,6 +152,9 @@ main(int argc, char *argv[]) imsg_compose(ibuf, IMSG_CTL_SHOW_NEIGHBOR, 0, 0, -1, NULL, 0); show_summary_head(); break; + case SHOW_SUMMARY_TERSE: + imsg_compose(ibuf, IMSG_CTL_SHOW_TERSE, 0, 0, -1, NULL, 0); + break; case SHOW_FIB: if (!res->addr.af) { struct buf *msg; @@ -297,6 +301,9 @@ main(int argc, char *argv[]) case SHOW_SUMMARY: done = show_summary_msg(&imsg, nodescr); break; + case SHOW_SUMMARY_TERSE: + done = show_summary_terse_msg(&imsg, nodescr); + break; case SHOW_FIB: done = show_fib_msg(&imsg); break; @@ -417,6 +424,29 @@ show_summary_msg(struct imsg *imsg, int nodescr) } int +show_summary_terse_msg(struct imsg *imsg, int nodescr) +{ + struct peer *p; + char *s; + + switch (imsg->hdr.type) { + case IMSG_CTL_SHOW_NEIGHBOR: + p = imsg->data; + s = fmt_peer(&p->conf, nodescr); + printf("%s %u %s\n", s, p->conf.remote_as, + statenames[p->state]); + free(s); + break; + case IMSG_CTL_END: + return (1); + default: + break; + } + + return (0); +} + +int show_neighbor_msg(struct imsg *imsg, enum neighbor_views nv) { struct peer *p; |
