diff options
| author | Donald Sharp <donaldsharp72@gmail.com> | 2022-05-13 07:35:57 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-13 07:35:57 -0400 | 
| commit | 69df174216b5829d3075765e0dba30d16f20e25c (patch) | |
| tree | 0941a78075e61004c563f5f775aa4d739d2587d3 /bgpd | |
| parent | a4df11489c5058c873eceaadeb6dbb3e9e74e956 (diff) | |
| parent | 7aad5e6a38cf2437d6df022199658f855f48f897 (diff) | |
Merge pull request #11188 from opensourcerouting/fix/argv_find
bgpd: Cleanup
Diffstat (limited to 'bgpd')
| -rw-r--r-- | bgpd/bgp_debug.c | 25 | ||||
| -rw-r--r-- | bgpd/bgp_evpn_vty.c | 53 | ||||
| -rw-r--r-- | bgpd/bgp_vty.c | 23 | 
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;  | 
