summaryrefslogtreecommitdiff
path: root/bgpd
diff options
context:
space:
mode:
authorDonald Sharp <donaldsharp72@gmail.com>2022-05-13 07:35:57 -0400
committerGitHub <noreply@github.com>2022-05-13 07:35:57 -0400
commit69df174216b5829d3075765e0dba30d16f20e25c (patch)
tree0941a78075e61004c563f5f775aa4d739d2587d3 /bgpd
parenta4df11489c5058c873eceaadeb6dbb3e9e74e956 (diff)
parent7aad5e6a38cf2437d6df022199658f855f48f897 (diff)
Merge pull request #11188 from opensourcerouting/fix/argv_find
bgpd: Cleanup
Diffstat (limited to 'bgpd')
-rw-r--r--bgpd/bgp_debug.c25
-rw-r--r--bgpd/bgp_evpn_vty.c53
-rw-r--r--bgpd/bgp_vty.c23
3 files changed, 53 insertions, 48 deletions
diff --git a/bgpd/bgp_debug.c b/bgpd/bgp_debug.c
index 0993d6de57..7712274b58 100644
--- a/bgpd/bgp_debug.c
+++ b/bgpd/bgp_debug.c
@@ -627,8 +627,8 @@ static int bgp_debug_parse_evpn_prefix(struct vty *vty, struct cmd_token **argv,
int argc, struct prefix **argv_pp)
{
struct prefix *argv_p;
- struct ethaddr mac;
- struct ipaddr ip;
+ struct ethaddr mac = {};
+ struct ipaddr ip = {};
int evpn_type = 0;
int mac_idx = 0;
int ip_idx = 0;
@@ -641,19 +641,28 @@ static int bgp_debug_parse_evpn_prefix(struct vty *vty, struct cmd_token **argv,
if (evpn_type == BGP_EVPN_MAC_IP_ROUTE) {
memset(&ip, 0, sizeof(struct ipaddr));
- argv_find(argv, argc, "mac", &mac_idx);
- (void)prefix_str2mac(argv[mac_idx + 1]->arg, &mac);
+ if (argv_find(argv, argc, "mac", &mac_idx))
+ if (!prefix_str2mac(argv[mac_idx + 1]->arg, &mac)) {
+ vty_out(vty, "%% Malformed MAC address\n");
+ return CMD_WARNING;
+ }
- argv_find(argv, argc, "ip", &ip_idx);
- str2ipaddr(argv[ip_idx + 1]->arg, &ip);
+ if (argv_find(argv, argc, "ip", &ip_idx))
+ if (str2ipaddr(argv[ip_idx + 1]->arg, &ip) != 0) {
+ vty_out(vty, "%% Malformed IP address\n");
+ return CMD_WARNING;
+ }
build_evpn_type2_prefix((struct prefix_evpn *)argv_p,
&mac, &ip);
} else if (evpn_type == BGP_EVPN_IMET_ROUTE) {
memset(&ip, 0, sizeof(struct ipaddr));
- argv_find(argv, argc, "ip", &ip_idx);
- str2ipaddr(argv[ip_idx + 1]->arg, &ip);
+ if (argv_find(argv, argc, "ip", &ip_idx))
+ if (str2ipaddr(argv[ip_idx + 1]->arg, &ip) != 0) {
+ vty_out(vty, "%% Malformed IP address\n");
+ return CMD_WARNING;
+ }
build_evpn_type3_prefix((struct prefix_evpn *)argv_p,
ip.ipaddr_v4);
diff --git a/bgpd/bgp_evpn_vty.c b/bgpd/bgp_evpn_vty.c
index 0c9cd3b721..73568074d3 100644
--- a/bgpd/bgp_evpn_vty.c
+++ b/bgpd/bgp_evpn_vty.c
@@ -1419,8 +1419,7 @@ DEFUN(show_ip_bgp_l2vpn_evpn_rd,
struct prefix_rd prd;
int rd_all = 0;
- argv_find(argv, argc, "all", &rd_all);
- if (rd_all)
+ if (argv_find(argv, argc, "all", &rd_all))
return bgp_show_ethernet_vpn(vty, NULL, bgp_show_type_normal,
NULL, SHOW_DISPLAY_STANDARD,
use_json(argc, argv));
@@ -1469,8 +1468,7 @@ DEFUN(show_ip_bgp_l2vpn_evpn_rd_tags,
struct prefix_rd prd;
int rd_all = 0;
- argv_find(argv, argc, "all", &rd_all);
- if (rd_all)
+ if (argv_find(argv, argc, "all", &rd_all))
return bgp_show_ethernet_vpn(vty, NULL, bgp_show_type_normal,
NULL, SHOW_DISPLAY_TAGS, 0);
@@ -1587,8 +1585,7 @@ DEFUN(show_ip_bgp_l2vpn_evpn_rd_neighbor_routes,
return CMD_WARNING;
}
- argv_find(argv, argc, "all", &rd_all);
- if (!rd_all) {
+ if (argv_find(argv, argc, "all", &rd_all)) {
argv_find(argv, argc, "ASN:NN_OR_IP-ADDRESS:NN",
&idx_ext_community);
ret = str2prefix_rd(argv[idx_ext_community]->arg, &prd);
@@ -1797,8 +1794,7 @@ DEFUN(show_ip_bgp_l2vpn_evpn_rd_neighbor_advertised_routes,
return CMD_WARNING;
}
- argv_find(argv, argc, "all", &rd_all);
- if (rd_all)
+ if (argv_find(argv, argc, "all", &rd_all))
return show_adj_route_vpn(vty, peer, NULL, AFI_L2VPN, SAFI_EVPN,
uj);
else {
@@ -1860,8 +1856,7 @@ DEFUN(show_ip_bgp_evpn_rd_overlay,
struct prefix_rd prd;
int rd_all = 0;
- argv_find(argv, argc, "all", &rd_all);
- if (rd_all)
+ if (argv_find(argv, argc, "all", &rd_all))
return bgp_show_ethernet_vpn(vty, NULL, bgp_show_type_normal,
NULL, SHOW_DISPLAY_OVERLAY,
use_json(argc, argv));
@@ -4693,7 +4688,7 @@ DEFUN(show_bgp_l2vpn_evpn_route_rd,
JSON_STR)
{
struct bgp *bgp;
- int ret;
+ int ret = 0;
struct prefix_rd prd;
int type = 0;
bool uj = false;
@@ -4710,15 +4705,16 @@ DEFUN(show_bgp_l2vpn_evpn_route_rd,
if (uj)
json = json_object_new_object();
- argv_find(argv, argc, "all", &rd_all);
- if (!rd_all) {
+ if (argv_find(argv, argc, "all", &rd_all)) {
/* get the RD */
- argv_find(argv, argc, "ASN:NN_OR_IP-ADDRESS:NN",
- &idx_ext_community);
- ret = str2prefix_rd(argv[idx_ext_community]->arg, &prd);
- if (!ret) {
- vty_out(vty, "%% Malformed Route Distinguisher\n");
- return CMD_WARNING;
+ if (argv_find(argv, argc, "ASN:NN_OR_IP-ADDRESS:NN",
+ &idx_ext_community)) {
+ ret = str2prefix_rd(argv[idx_ext_community]->arg, &prd);
+ if (!ret) {
+ vty_out(vty,
+ "%% Malformed Route Distinguisher\n");
+ return CMD_WARNING;
+ }
}
}
@@ -4757,7 +4753,7 @@ DEFUN(show_bgp_l2vpn_evpn_route_rd_macip,
JSON_STR)
{
struct bgp *bgp;
- int ret;
+ int ret = 0;
struct prefix_rd prd;
struct ethaddr mac;
struct ipaddr ip;
@@ -4781,14 +4777,15 @@ DEFUN(show_bgp_l2vpn_evpn_route_rd_macip,
json = json_object_new_object();
/* get the prd */
- argv_find(argv, argc, "all", &rd_all);
- if (!rd_all) {
- argv_find(argv, argc, "ASN:NN_OR_IP-ADDRESS:NN",
- &idx_ext_community);
- ret = str2prefix_rd(argv[idx_ext_community]->arg, &prd);
- if (!ret) {
- vty_out(vty, "%% Malformed Route Distinguisher\n");
- return CMD_WARNING;
+ if (argv_find(argv, argc, "all", &rd_all)) {
+ if (argv_find(argv, argc, "ASN:NN_OR_IP-ADDRESS:NN",
+ &idx_ext_community)) {
+ ret = str2prefix_rd(argv[idx_ext_community]->arg, &prd);
+ if (!ret) {
+ vty_out(vty,
+ "%% Malformed Route Distinguisher\n");
+ return CMD_WARNING;
+ }
}
}
diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c
index ff28bf6411..4a3688be27 100644
--- a/bgpd/bgp_vty.c
+++ b/bgpd/bgp_vty.c
@@ -1974,8 +1974,8 @@ DEFUN (bgp_maxmed_onstartup,
VTY_DECLVAR_CONTEXT(bgp, bgp);
int idx = 0;
- argv_find(argv, argc, "(5-86400)", &idx);
- bgp->v_maxmed_onstartup = strtoul(argv[idx]->arg, NULL, 10);
+ if (argv_find(argv, argc, "(5-86400)", &idx))
+ bgp->v_maxmed_onstartup = strtoul(argv[idx]->arg, NULL, 10);
if (argv_find(argv, argc, "(0-4294967295)", &idx))
bgp->maxmed_onstartup_value = strtoul(argv[idx]->arg, NULL, 10);
else
@@ -2275,9 +2275,12 @@ DEFUN (bgp_coalesce_time,
VTY_DECLVAR_CONTEXT(bgp, bgp);
int idx = 0;
- argv_find(argv, argc, "(0-4294967295)", &idx);
+
bgp->heuristic_coalesce = false;
- bgp->coalesce_time = strtoul(argv[idx]->arg, NULL, 10);
+
+ if (argv_find(argv, argc, "(0-4294967295)", &idx))
+ bgp->coalesce_time = strtoul(argv[idx]->arg, NULL, 10);
+
return CMD_SUCCESS;
}
@@ -19243,8 +19246,7 @@ DEFUN (community_list_standard,
int style = COMMUNITY_LIST_STANDARD;
int idx = 0;
- argv_find(argv, argc, "(0-4294967295)", &idx);
- if (idx)
+ if (argv_find(argv, argc, "(0-4294967295)", &idx))
seq = argv[idx]->arg;
idx = 0;
@@ -19292,8 +19294,7 @@ DEFUN (no_community_list_standard_all,
char *seq = NULL;
int idx = 0;
- argv_find(argv, argc, "(0-4294967295)", &idx);
- if (idx)
+ if (argv_find(argv, argc, "(0-4294967295)", &idx))
seq = argv[idx]->arg;
idx = 0;
@@ -19356,8 +19357,7 @@ DEFUN (community_list_expanded_all,
int style = COMMUNITY_LIST_EXPANDED;
int idx = 0;
- argv_find(argv, argc, "(0-4294967295)", &idx);
- if (idx)
+ if (argv_find(argv, argc, "(0-4294967295)", &idx))
seq = argv[idx]->arg;
idx = 0;
@@ -19406,8 +19406,7 @@ DEFUN (no_community_list_expanded_all,
int style = COMMUNITY_LIST_EXPANDED;
int idx = 0;
- argv_find(argv, argc, "(0-4294967295)", &idx);
- if (idx)
+ if (argv_find(argv, argc, "(0-4294967295)", &idx))
seq = argv[idx]->arg;
idx = 0;