diff options
author | Henning Brauer <henning@cvs.openbsd.org> | 2004-04-25 19:12:58 +0000 |
---|---|---|
committer | Henning Brauer <henning@cvs.openbsd.org> | 2004-04-25 19:12:58 +0000 |
commit | 1e9e7bb5589a779236267f9e1d9fcf867b5fc9d5 (patch) | |
tree | 7f648ba00ad0ccb9b1be42e6b500d97b93c55a5a /usr.sbin/bgpd/session.c | |
parent | 94a091e9d3493d307af62faea774a2a1d49909c7 (diff) |
if remote-as was not configured, inherit the AS from the neighbors open
message for cloned neighbors, claudio ok
Diffstat (limited to 'usr.sbin/bgpd/session.c')
-rw-r--r-- | usr.sbin/bgpd/session.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/usr.sbin/bgpd/session.c b/usr.sbin/bgpd/session.c index ab40ffe6e28..752f02e3f12 100644 --- a/usr.sbin/bgpd/session.c +++ b/usr.sbin/bgpd/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.147 2004/04/25 18:21:18 henning Exp $ */ +/* $OpenBSD: session.c,v 1.148 2004/04/25 19:12:57 henning Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -1462,6 +1462,10 @@ parse_open(struct peer *peer) memcpy(&as, p, sizeof(as)); p += sizeof(as); + /* if remote-as is zero and it's a cloned neighbor, accept any */ + if (peer->conf.cloned && !peer->conf.remote_as) + peer->conf.remote_as = ntohs(as); + if (peer->conf.remote_as != ntohs(as)) { log_peer_warnx(&peer->conf, "peer sent wrong AS %u", ntohs(as)); session_notification(peer, ERR_OPEN, ERR_OPEN_AS, NULL, 0); |