hei, thanks! i forgot that we print the config.
ok benno@, with whitespace fixed. Denis Fondras(open...@ledeuns.net) on 2016.06.05 10:06:29 +0200: > > This didn't quite work, as log_as will override itself when used twice > > in the same printf. > > > > I should not have sent this late at night... > > > Index: printconf.c > =================================================================== > RCS file: /cvs/src/usr.sbin/bgpd/printconf.c,v > retrieving revision 1.96 > diff -u -p -r1.96 printconf.c > --- printconf.c 21 Sep 2015 09:47:15 -0000 1.96 > +++ printconf.c 5 Jun 2016 08:00:59 -0000 > @@ -41,8 +41,9 @@ void print_peer(struct peer_config *, > const char *print_auth_alg(u_int8_t); > const char *print_enc_alg(u_int8_t); > void print_announce(struct peer_config *, const char *); > +void print_as(struct filter_rule *); > void print_rule(struct peer *, struct filter_rule *); > -const char * mrt_type(enum mrt_type); > +const char *mrt_type(enum mrt_type); > void print_mrt(struct bgpd_config *, u_int32_t, u_int32_t, > const char *, const char *); > void print_groups(struct bgpd_config *, struct peer *); > @@ -506,6 +507,26 @@ print_announce(struct peer_config *p, co > printf("%s\tannounce %s\n", c, aid2str(aid)); > } > > +void print_as(struct filter_rule *r) > +{ > + switch(r->match.as.op) { > + case OP_RANGE: > + printf("%s - ", log_as(r->match.as.as_min)); whitespace > + printf("%s ", log_as(r->match.as.as_max)); > + break; > + case OP_XRANGE: > + printf("%s >< ", log_as(r->match.as.as_min)); > + printf("%s ", log_as(r->match.as.as_max)); > + break; > + case OP_NE: > + printf("!= %s ", log_as(r->match.as.as)); > + break; > + default: > + printf("%s ", log_as(r->match.as.as)); > + break; > + } > +} > + > void > print_rule(struct peer *peer_l, struct filter_rule *r) > { > @@ -577,15 +598,16 @@ print_rule(struct peer *peer_l, struct f > > if (r->match.as.type) { > if (r->match.as.type == AS_ALL) > - printf("AS %s ", log_as(r->match.as.as)); > + printf("AS "); > else if (r->match.as.type == AS_SOURCE) > - printf("source-as %s ", log_as(r->match.as.as)); > + printf("source-as "); > else if (r->match.as.type == AS_TRANSIT) > - printf("transit-as %s ", log_as(r->match.as.as)); > + printf("transit-as "); > else if (r->match.as.type == AS_PEER) > - printf("peer-as %s ", log_as(r->match.as.as)); > + printf("peer-as "); > else > - printf("unfluffy-as %s ", log_as(r->match.as.as)); > + printf("unfluffy-as "); > + print_as(r); > } > > if (r->match.aslen.type) { > --