diff options
| author | 2004-12-23 17:26:51 +0000 | |
|---|---|---|
| committer | 2004-12-23 17:26:51 +0000 | |
| commit | fd71c51de4eda8172831649ce84bb02e01a19297 (patch) | |
| tree | f93c7ce500042b02051b7134ebebc6b047073fa3 /usr.sbin/bgpctl/parser.c | |
| parent | introduce getpeerbydesc(), find a peer by its description (diff) | |
| download | wireguard-openbsd-fd71c51de4eda8172831649ce84bb02e01a19297.tar.xz wireguard-openbsd-fd71c51de4eda8172831649ce84bb02e01a19297.zip | |
allow "bgpctl neighbor" to take the peer's descr as argument as well
as its address
so "bgpctl neighbor upstream1 clear" now works and you don't have to
remember IPs
claudio ok
Diffstat (limited to 'usr.sbin/bgpctl/parser.c')
| -rw-r--r-- | usr.sbin/bgpctl/parser.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/usr.sbin/bgpctl/parser.c b/usr.sbin/bgpctl/parser.c index e8b587e33e6..43bb718c1e6 100644 --- a/usr.sbin/bgpctl/parser.c +++ b/usr.sbin/bgpctl/parser.c @@ -1,4 +1,4 @@ -/* $OpenBSD: parser.c,v 1.9 2004/10/26 13:12:22 henning Exp $ */ +/* $OpenBSD: parser.c,v 1.10 2004/12/23 17:26:51 henning Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -33,7 +33,8 @@ enum token_type { FLAG, ASNUM, ASTYPE, - PREFIX + PREFIX, + PEERDESC }; struct token { @@ -121,6 +122,7 @@ static const struct token t_fib[] = { static const struct token t_neighbor[] = { { ADDRESS, "", NONE, t_neighbor_modifiers}, + { PEERDESC, "", NONE, t_neighbor_modifiers}, { ENDTOKEN, "", NONE, NULL} }; @@ -265,6 +267,16 @@ match_token(const char *word, const struct token table[]) t = &table[i]; } break; + case PEERDESC: + if (word != NULL && strlen(word) > 0) { + if (strlcpy(res.peerdesc, word, + sizeof(res.peerdesc)) >= + sizeof(res.peerdesc)) + err(1, "neighbor description too long"); + match++; + t = &table[i]; + } + break; case ENDTOKEN: break; } @@ -305,6 +317,9 @@ show_valid_args(const struct token table[]) case ASNUM: fprintf(stderr, " <asnum>\n"); break; + case PEERDESC: + fprintf(stderr, " <neighbor description>\n"); + break; case ENDTOKEN: break; } @@ -379,4 +394,3 @@ parse_asnum(const char *word, u_int16_t *asnum) *asnum = (u_int16_t)ulval; return (1); } - |
