From a4b8685cf920a6fef16469ae8eb044b77715ec66 Mon Sep 17 00:00:00 2001 From: Claudio Jeker Date: Sun, 15 Jun 2008 10:19:22 +0000 Subject: Allow bgpd to delete more then one community per filter rule. Fixes PR5807 tested by Raphael Ho long time ago. --- usr.sbin/bgpd/parse.y | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'usr.sbin/bgpd/parse.y') diff --git a/usr.sbin/bgpd/parse.y b/usr.sbin/bgpd/parse.y index 2c8c60e1604..64d77e3cea4 100644 --- a/usr.sbin/bgpd/parse.y +++ b/usr.sbin/bgpd/parse.y @@ -1,4 +1,4 @@ -/* $OpenBSD: parse.y,v 1.215 2008/02/26 10:09:58 mpf Exp $ */ +/* $OpenBSD: parse.y,v 1.216 2008/06/15 10:19:21 claudio Exp $ */ /* * Copyright (c) 2002, 2003, 2004 Henning Brauer @@ -2749,6 +2749,8 @@ merge_filterset(struct filter_set_head *sh, struct filter_set *s) if (filterset_cmp(s, t) == 0) { if (s->type == ACTION_SET_COMMUNITY) yyerror("community is already set"); + else if (s->type == ACTION_DEL_COMMUNITY) + yyerror("community will already be deleted"); else yyerror("redefining set parameter %s", filterset_name(s->type)); @@ -2764,6 +2766,7 @@ merge_filterset(struct filter_set_head *sh, struct filter_set *s) if (s->type == t->type) switch (s->type) { case ACTION_SET_COMMUNITY: + case ACTION_DEL_COMMUNITY: if (s->action.community.as < t->action.community.as || (s->action.community.as == -- cgit v1.2.3