diff options
author | Kurt Jaeger <pi@FreeBSD.org> | 2019-06-03 20:08:36 +0000 |
---|---|---|
committer | Kurt Jaeger <pi@FreeBSD.org> | 2019-06-03 20:08:36 +0000 |
commit | 713c2289b8d66d3752c1225ca18d740daa50c8fc (patch) | |
tree | 26af7b6de4c410d2e2810fec4c81c3ab0b9c5e76 /net/openbgpd/files/patch-bgpctl_irr_parser.c | |
parent | Upgrade to 0.0.5 (diff) |
net/openbgpd: revert upgrade from 6.5p0 to 5.2.20121209
- openbgpd version 6.5p0 was the "portable" version, which specifically
does *not* support kernel routing updates.
- Therefore this is only suitable for route servers/collectors, not
for production use in routers. This significantly violates POLA :)
PR: 213445
Submitted by: Oliver H <oliver@watershed.co.uk>
Notes
Notes:
svn path=/head/; revision=503421
Diffstat (limited to 'net/openbgpd/files/patch-bgpctl_irr_parser.c')
-rw-r--r-- | net/openbgpd/files/patch-bgpctl_irr_parser.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/net/openbgpd/files/patch-bgpctl_irr_parser.c b/net/openbgpd/files/patch-bgpctl_irr_parser.c new file mode 100644 index 000000000000..2e445ea37809 --- /dev/null +++ b/net/openbgpd/files/patch-bgpctl_irr_parser.c @@ -0,0 +1,48 @@ +Index: bgpctl/irr_parser.c +=================================================================== +RCS file: /home/cvs/private/hrs/openbgpd/bgpctl/irr_parser.c,v +retrieving revision 1.1.1.5 +retrieving revision 1.5 +diff -u -p -r1.1.1.5 -r1.5 +--- bgpctl/irr_parser.c 14 Feb 2010 20:20:14 -0000 1.1.1.5 ++++ bgpctl/irr_parser.c 13 Oct 2012 18:35:56 -0000 1.5 +@@ -1,4 +1,4 @@ +-/* $OpenBSD: irr_parser.c,v 1.8 2007/03/05 22:34:08 henning Exp $ */ ++/* $OpenBSD: irr_parser.c,v 1.9 2009/09/08 15:40:25 claudio Exp $ */ + + /* + * Copyright (c) 2007 Henning Brauer <henning@openbsd.org> +@@ -81,6 +81,7 @@ parse_response(FILE *f, enum qtype qtype + return (-1); + break; + case QTYPE_ROUTE: ++ case QTYPE_ROUTE6: + if ((n = parse_route(key, val)) == -1) + return (-1); + break; +@@ -281,7 +282,7 @@ parse_policy(char *key, char *val) + !isdigit(tok[2])) + errx(1, "peering spec \"%s\": format " + "error, AS expected", tok); +- pi->peer_as = strtonum(tok + 2, 1, USHRT_MAX, ++ pi->peer_as = strtonum(tok + 2, 1, UINT_MAX, + &errstr); + if (errstr) + errx(1, "peering spec \"%s\": format " +@@ -407,11 +408,13 @@ parse_asset(char *key, char *val) + int + parse_route(char *key, char *val) + { +- if (strcmp(key, "route")) /* ignore everything else */ ++ if (strcmp(key, "route") && strcmp(key, "route6")) ++ /* ignore everything else */ + return (0); + +- /* route is single-value, but seen trailing , in the wild */ +- if (strlen(val) > 0 && val[strlen(val) - 1] == ',') ++ /* route is single-value, but seen trailing , and \r in the wild */ ++ if (strlen(val) > 0 && (val[strlen(val) - 1] == ',' || ++ val[strlen(val) - 1] == '\r')) + val[strlen(val) - 1] = '\0'; + + return (prefixset_addmember(val)); |