2004-10-13 Paul Jakma <paul@dishone.st>
* (global) more const'ification and fixups of types to clean up code.
* bgp_mplsvpn.{c,h}: (str2tag) fix abuse. Still not perfect,
should use something like the VTY_GET_INTEGER macro, but without
the vty_out bits..
* bgp_routemap.c: (set_aggregator_as) use VTY_GET_INTEGER_RANGE
(no_set_aggregator_as) ditto.
* bgpd.c: (peer_uptime) fix unlikely bug, where no buffer is
returned, add comments about troublesome return value.
diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c
index 6b3c498..027b8ca 100644
--- a/bgpd/bgp_vty.c
+++ b/bgpd/bgp_vty.c
@@ -84,7 +84,7 @@
/* Utility function for looking up peer from VTY. */
struct peer *
-peer_lookup_vty (struct vty *vty, char *ip_str)
+peer_lookup_vty (struct vty *vty, const char *ip_str)
{
int ret;
struct bgp *bgp;
@@ -111,7 +111,7 @@
/* Utility function for looking up peer or peer group. */
struct peer *
-peer_and_group_lookup_vty (struct vty *vty, char *peer_str)
+peer_and_group_lookup_vty (struct vty *vty, const char *peer_str)
{
int ret;
struct bgp *bgp;
@@ -144,7 +144,7 @@
int
bgp_vty_return (struct vty *vty, int ret)
{
- char *str = NULL;
+ const char *str = NULL;
switch (ret)
{
@@ -297,7 +297,7 @@
int ret;
as_t as;
struct bgp *bgp;
- char *name = NULL;
+ const char *name = NULL;
VTY_GET_INTEGER_RANGE ("AS", as, argv[0], 1, 65535);
@@ -350,7 +350,7 @@
{
as_t as;
struct bgp *bgp;
- char *name = NULL;
+ const char *name = NULL;
VTY_GET_INTEGER_RANGE ("AS", as, argv[0], 1, 65535);
@@ -1143,8 +1143,8 @@
"Configure default local preference value\n")
static int
-peer_remote_as_vty (struct vty *vty, char *peer_str, char *as_str, afi_t afi,
- safi_t safi)
+peer_remote_as_vty (struct vty *vty, const char *peer_str,
+ const char *as_str, afi_t afi, safi_t safi)
{
int ret;
struct bgp *bgp;
@@ -1508,7 +1508,8 @@
}
int
-peer_flag_modify_vty (struct vty *vty, char *ip_str, u_int16_t flag, int set)
+peer_flag_modify_vty (struct vty *vty, const char *ip_str,
+ u_int16_t flag, int set)
{
int ret;
struct peer *peer;
@@ -1526,13 +1527,13 @@
}
int
-peer_flag_set_vty (struct vty *vty, char *ip_str, u_int16_t flag)
+peer_flag_set_vty (struct vty *vty, const char *ip_str, u_int16_t flag)
{
return peer_flag_modify_vty (vty, ip_str, flag, 1);
}
int
-peer_flag_unset_vty (struct vty *vty, char *ip_str, u_int16_t flag)
+peer_flag_unset_vty (struct vty *vty, const char *ip_str, u_int16_t flag)
{
return peer_flag_modify_vty (vty, ip_str, flag, 0);
}
@@ -1652,7 +1653,7 @@
}
int
-peer_af_flag_modify_vty (struct vty *vty, char *peer_str, afi_t afi,
+peer_af_flag_modify_vty (struct vty *vty, const char *peer_str, afi_t afi,
safi_t safi, u_int32_t flag, int set)
{
int ret;
@@ -1671,14 +1672,14 @@
}
int
-peer_af_flag_set_vty (struct vty *vty, char *peer_str, afi_t afi,
+peer_af_flag_set_vty (struct vty *vty, const char *peer_str, afi_t afi,
safi_t safi, u_int32_t flag)
{
return peer_af_flag_modify_vty (vty, peer_str, afi, safi, flag, 1);
}
int
-peer_af_flag_unset_vty (struct vty *vty, char *peer_str, afi_t afi,
+peer_af_flag_unset_vty (struct vty *vty, const char *peer_str, afi_t afi,
safi_t safi, u_int32_t flag)
{
return peer_af_flag_modify_vty (vty, peer_str, afi, safi, flag, 0);
@@ -1929,7 +1930,8 @@
}
int
-peer_rsclient_set_vty (struct vty *vty, char *peer_str, int afi, int safi)
+peer_rsclient_set_vty (struct vty *vty, const char *peer_str,
+ int afi, int safi)
{
int ret;
struct bgp *bgp;
@@ -2010,7 +2012,8 @@
}
int
-peer_rsclient_unset_vty (struct vty *vty, char *peer_str, int afi, int safi)
+peer_rsclient_unset_vty (struct vty *vty, const char *peer_str,
+ int afi, int safi)
{
int ret;
struct bgp *bgp;
@@ -2466,10 +2469,11 @@
/* EBGP multihop configuration. */
int
-peer_ebgp_multihop_set_vty (struct vty *vty, char *ip_str, char *ttl_str)
+peer_ebgp_multihop_set_vty (struct vty *vty, const char *ip_str,
+ const char *ttl_str)
{
struct peer *peer;
- int ttl;
+ unsigned int ttl;
peer = peer_and_group_lookup_vty (vty, ip_str);
if (! peer)
@@ -2486,7 +2490,7 @@
}
int
-peer_ebgp_multihop_unset_vty (struct vty *vty, char *ip_str)
+peer_ebgp_multihop_unset_vty (struct vty *vty, const char *ip_str)
{
struct peer *peer;
@@ -2632,7 +2636,8 @@
/* Neighbor update-source. */
int
-peer_update_source_vty (struct vty *vty, char *peer_str, char *source_str)
+peer_update_source_vty (struct vty *vty, const char *peer_str,
+ const char *source_str)
{
struct peer *peer;
union sockunion *su;
@@ -2682,8 +2687,9 @@
}
int
-peer_default_originate_set_vty (struct vty *vty, char *peer_str, afi_t afi,
- safi_t safi, char *rmap, int set)
+peer_default_originate_set_vty (struct vty *vty, const char *peer_str,
+ afi_t afi, safi_t safi,
+ const char *rmap, int set)
{
int ret;
struct peer *peer;
@@ -2749,7 +2755,8 @@
/* Set neighbor's BGP port. */
int
-peer_port_vty (struct vty *vty, char *ip_str, int afi, char *port_str)
+peer_port_vty (struct vty *vty, const char *ip_str, int afi,
+ const char *port_str)
{
struct peer *peer;
u_int16_t port;
@@ -2808,7 +2815,8 @@
/* neighbor weight. */
int
-peer_weight_set_vty (struct vty *vty, char *ip_str, char *weight_str)
+peer_weight_set_vty (struct vty *vty, const char *ip_str,
+ const char *weight_str)
{
int ret;
struct peer *peer;
@@ -2826,7 +2834,7 @@
}
int
-peer_weight_unset_vty (struct vty *vty, char *ip_str)
+peer_weight_unset_vty (struct vty *vty, const char *ip_str)
{
struct peer *peer;
@@ -2914,8 +2922,8 @@
}
int
-peer_timers_set_vty (struct vty *vty, char *ip_str, char *keep_str,
- char *hold_str)
+peer_timers_set_vty (struct vty *vty, const char *ip_str,
+ const char *keep_str, const char *hold_str)
{
int ret;
struct peer *peer;
@@ -2935,7 +2943,7 @@
}
int
-peer_timers_unset_vty (struct vty *vty, char *ip_str)
+peer_timers_unset_vty (struct vty *vty, const char *ip_str)
{
int ret;
struct peer *peer;
@@ -2973,7 +2981,8 @@
}
int
-peer_timers_connect_set_vty (struct vty *vty, char *ip_str, char *time_str)
+peer_timers_connect_set_vty (struct vty *vty, const char *ip_str,
+ const char *time_str)
{
int ret;
struct peer *peer;
@@ -2991,7 +3000,7 @@
}
int
-peer_timers_connect_unset_vty (struct vty *vty, char *ip_str)
+peer_timers_connect_unset_vty (struct vty *vty, const char *ip_str)
{
int ret;
struct peer *peer;
@@ -3040,8 +3049,8 @@
"Connect timer\n")
int
-peer_advertise_interval_vty (struct vty *vty, char *ip_str, char *time_str,
- int set)
+peer_advertise_interval_vty (struct vty *vty, const char *ip_str,
+ const char *time_str, int set)
{
int ret;
struct peer *peer;
@@ -3094,7 +3103,7 @@
"time in seconds\n")
int
-peer_version_vty (struct vty *vty, char *ip_str, char *str)
+peer_version_vty (struct vty *vty, const char *ip_str, const char *str)
{
int ret;
struct peer *peer;
@@ -3145,7 +3154,7 @@
/* neighbor interface */
int
-peer_interface_vty (struct vty *vty, char *ip_str, char *str)
+peer_interface_vty (struct vty *vty, const char *ip_str, const char *str)
{
int ret;
struct peer *peer;
@@ -3187,8 +3196,9 @@
/* Set distribute list to the peer. */
int
-peer_distribute_set_vty (struct vty *vty, char *ip_str, afi_t afi, safi_t safi,
- char *name_str, char *direct_str)
+peer_distribute_set_vty (struct vty *vty, const char *ip_str,
+ afi_t afi, safi_t safi,
+ const char *name_str, const char *direct_str)
{
int ret;
struct peer *peer;
@@ -3210,8 +3220,8 @@
}
int
-peer_distribute_unset_vty (struct vty *vty, char *ip_str, afi_t afi,
- safi_t safi, char *direct_str)
+peer_distribute_unset_vty (struct vty *vty, const char *ip_str, afi_t afi,
+ safi_t safi, const char *direct_str)
{
int ret;
struct peer *peer;
@@ -3267,8 +3277,9 @@
/* Set prefix list to the peer. */
int
-peer_prefix_list_set_vty (struct vty *vty, char *ip_str, afi_t afi,
- safi_t safi, char *name_str, char *direct_str)
+peer_prefix_list_set_vty (struct vty *vty, const char *ip_str, afi_t afi,
+ safi_t safi, const char *name_str,
+ const char *direct_str)
{
int ret;
struct peer *peer;
@@ -3290,8 +3301,8 @@
}
int
-peer_prefix_list_unset_vty (struct vty *vty, char *ip_str, afi_t afi,
- safi_t safi, char *direct_str)
+peer_prefix_list_unset_vty (struct vty *vty, const char *ip_str, afi_t afi,
+ safi_t safi, const char *direct_str)
{
int ret;
struct peer *peer;
@@ -3342,8 +3353,9 @@
}
int
-peer_aslist_set_vty (struct vty *vty, char *ip_str, afi_t afi, safi_t safi,
- char *name_str, char *direct_str)
+peer_aslist_set_vty (struct vty *vty, const char *ip_str,
+ afi_t afi, safi_t safi,
+ const char *name_str, const char *direct_str)
{
int ret;
struct peer *peer;
@@ -3365,8 +3377,9 @@
}
int
-peer_aslist_unset_vty (struct vty *vty, char *ip_str, afi_t afi, safi_t safi,
- char *direct_str)
+peer_aslist_unset_vty (struct vty *vty, const char *ip_str,
+ afi_t afi, safi_t safi,
+ const char *direct_str)
{
int ret;
struct peer *peer;
@@ -3418,8 +3431,9 @@
/* Set route-map to the peer. */
int
-peer_route_map_set_vty (struct vty *vty, char *ip_str, afi_t afi, safi_t safi,
- char *name_str, char *direct_str)
+peer_route_map_set_vty (struct vty *vty, const char *ip_str,
+ afi_t afi, safi_t safi,
+ const char *name_str, const char *direct_str)
{
int ret;
struct peer *peer;
@@ -3445,8 +3459,8 @@
}
int
-peer_route_map_unset_vty (struct vty *vty, char *ip_str, afi_t afi,
- safi_t safi, char *direct_str)
+peer_route_map_unset_vty (struct vty *vty, const char *ip_str, afi_t afi,
+ safi_t safi, const char *direct_str)
{
int ret;
struct peer *peer;
@@ -3506,8 +3520,8 @@
/* Set unsuppress-map to the peer. */
int
-peer_unsuppress_map_set_vty (struct vty *vty, char *ip_str, afi_t afi,
- safi_t safi, char *name_str)
+peer_unsuppress_map_set_vty (struct vty *vty, const char *ip_str, afi_t afi,
+ safi_t safi, const char *name_str)
{
int ret;
struct peer *peer;
@@ -3523,7 +3537,7 @@
/* Unset route-map from the peer. */
int
-peer_unsuppress_map_unset_vty (struct vty *vty, char *ip_str, afi_t afi,
+peer_unsuppress_map_unset_vty (struct vty *vty, const char *ip_str, afi_t afi,
safi_t safi)
{
int ret;
@@ -3564,9 +3578,9 @@
}
int
-peer_maximum_prefix_set_vty (struct vty *vty, char *ip_str, afi_t afi,
- safi_t safi, char *num_str, char *threshold_str,
- int warning)
+peer_maximum_prefix_set_vty (struct vty *vty, const char *ip_str, afi_t afi,
+ safi_t safi, const char *num_str,
+ const char *threshold_str, int warning)
{
int ret;
struct peer *peer;
@@ -3589,7 +3603,7 @@
}
int
-peer_maximum_prefix_unset_vty (struct vty *vty, char *ip_str, afi_t afi,
+peer_maximum_prefix_unset_vty (struct vty *vty, const char *ip_str, afi_t afi,
safi_t safi)
{
int ret;
@@ -3711,7 +3725,7 @@
{
int ret;
struct peer *peer;
- int allow_num;
+ unsigned int allow_num;
peer = peer_and_group_lookup_vty (vty, argv[0]);
if (! peer)
@@ -3863,7 +3877,7 @@
/* `clear ip bgp' functions. */
int
bgp_clear (struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi,
- enum clear_sort sort,enum bgp_clear_type stype, char *arg)
+ enum clear_sort sort,enum bgp_clear_type stype, const char *arg)
{
int ret;
struct peer *peer;
@@ -4005,8 +4019,9 @@
}
int
-bgp_clear_vty (struct vty *vty, char *name, afi_t afi, safi_t safi,
- enum clear_sort sort, enum bgp_clear_type stype, char *arg)
+bgp_clear_vty (struct vty *vty, const char *name, afi_t afi, safi_t safi,
+ enum clear_sort sort, enum bgp_clear_type stype,
+ const char *arg)
{
int ret;
struct bgp *bgp;
@@ -6412,7 +6427,8 @@
}
int
-bgp_show_summary_vty (struct vty *vty, char *name, afi_t afi, safi_t safi)
+bgp_show_summary_vty (struct vty *vty, const char *name,
+ afi_t afi, safi_t safi)
{
struct bgp *bgp;
@@ -6602,7 +6618,7 @@
}
#endif /* HAVE_IPV6 */
-char *
+const char *
afi_safi_print (afi_t afi, safi_t safi)
{
if (afi == AFI_IP && safi == SAFI_UNICAST)
@@ -7187,8 +7203,8 @@
}
int
-bgp_show_neighbor_vty (struct vty *vty, char *name, enum show_type type,
- char *ip_str)
+bgp_show_neighbor_vty (struct vty *vty, const char *name,
+ enum show_type type, const char *ip_str)
{
int ret;
struct bgp *bgp;
@@ -7505,7 +7521,7 @@
{
char timebuf[BGP_UPTIME_LEN];
char rmbuf[14];
- char *rmname;
+ const char *rmname;
struct peer *peer;
struct listnode *nn;
int len;
@@ -7576,7 +7592,8 @@
}
int
-bgp_show_rsclient_summary (struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi)
+bgp_show_rsclient_summary (struct vty *vty, struct bgp *bgp,
+ afi_t afi, safi_t safi)
{
struct peer *peer;
struct listnode *nn;
@@ -7618,7 +7635,8 @@
}
int
-bgp_show_rsclient_summary_vty (struct vty *vty, char *name, afi_t afi, safi_t safi)
+bgp_show_rsclient_summary_vty (struct vty *vty, const char *name,
+ afi_t afi, safi_t safi)
{
struct bgp *bgp;
@@ -7760,7 +7778,7 @@
/* Utility function to convert user input route type string to route
type. */
static int
-bgp_str2route_type (int afi, char *str)
+bgp_str2route_type (int afi, const char *str)
{
if (! str)
return 0;
@@ -8306,7 +8324,7 @@
safi_t safi, int *write)
{
int i;
- char *str[] = { "system", "kernel", "connected", "static", "rip",
+ const char *str[] = { "system", "kernel", "connected", "static", "rip",
"ripng", "ospf", "ospf6", "isis", "bgp"};
/* Unicast redistribution only. */
@@ -9325,7 +9343,7 @@
/* VTY functions. */
/* Direction value to string conversion. */
-char *
+const char *
community_direct_str (int direct)
{
switch (direct)
@@ -9365,8 +9383,8 @@
/* VTY interface for community_set() function. */
int
-community_list_set_vty (struct vty *vty, int argc, char **argv, int style,
- int reject_all_digit_name)
+community_list_set_vty (struct vty *vty, int argc, const char **argv,
+ int style, int reject_all_digit_name)
{
int ret;
int direct;
@@ -9418,7 +9436,7 @@
/* Community-list delete with name. */
int
-community_list_unset_all_vty (struct vty *vty, char *name)
+community_list_unset_all_vty (struct vty *vty, const char *name)
{
int ret;
@@ -9434,7 +9452,8 @@
/* Communiyt-list entry delete. */
int
-community_list_unset_vty (struct vty *vty, int argc, char **argv, int style)
+community_list_unset_vty (struct vty *vty, int argc, const char **argv,
+ int style)
{
int ret;
int direct;
@@ -9738,8 +9757,8 @@
}
int
-extcommunity_list_set_vty (struct vty *vty, int argc, char **argv, int style,
- int reject_all_digit_name)
+extcommunity_list_set_vty (struct vty *vty, int argc, const char **argv,
+ int style, int reject_all_digit_name)
{
int ret;
int direct;
@@ -9786,7 +9805,7 @@
}
int
-extcommunity_list_unset_all_vty (struct vty *vty, char *name)
+extcommunity_list_unset_all_vty (struct vty *vty, const char *name)
{
int ret;
@@ -9801,7 +9820,8 @@
}
int
-extcommunity_list_unset_vty (struct vty *vty, int argc, char **argv, int style)
+extcommunity_list_unset_vty (struct vty *vty, int argc, const char **argv,
+ int style)
{
int ret;
int direct;
@@ -10077,10 +10097,10 @@
}
/* Return configuration string of community-list entry. */
-static char *
+static const char *
community_list_config_str (struct community_entry *entry)
{
- char *str;
+ const char *str;
if (entry->any)
str = "";