mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-30 22:25:41 +00:00
commit
cb0fd829f3
@ -52,6 +52,11 @@ struct ecommunity *ecommunity_new(void)
|
|||||||
sizeof(struct ecommunity));
|
sizeof(struct ecommunity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ecommunity_strfree(char **s)
|
||||||
|
{
|
||||||
|
XFREE(MTYPE_ECOMMUNITY_STR, *s);
|
||||||
|
}
|
||||||
|
|
||||||
/* Allocate ecommunities. */
|
/* Allocate ecommunities. */
|
||||||
void ecommunity_free(struct ecommunity **ecom)
|
void ecommunity_free(struct ecommunity **ecom)
|
||||||
{
|
{
|
||||||
|
@ -156,6 +156,7 @@ extern void ecommunity_unintern(struct ecommunity **);
|
|||||||
extern unsigned int ecommunity_hash_make(void *);
|
extern unsigned int ecommunity_hash_make(void *);
|
||||||
extern struct ecommunity *ecommunity_str2com(const char *, int, int);
|
extern struct ecommunity *ecommunity_str2com(const char *, int, int);
|
||||||
extern char *ecommunity_ecom2str(struct ecommunity *, int, int);
|
extern char *ecommunity_ecom2str(struct ecommunity *, int, int);
|
||||||
|
extern void ecommunity_strfree(char **s);
|
||||||
extern int ecommunity_match(const struct ecommunity *,
|
extern int ecommunity_match(const struct ecommunity *,
|
||||||
const struct ecommunity *);
|
const struct ecommunity *);
|
||||||
extern char *ecommunity_str(struct ecommunity *);
|
extern char *ecommunity_str(struct ecommunity *);
|
||||||
|
@ -166,6 +166,9 @@ int bgp_nlri_parse_flowspec(struct peer *peer, struct attr *attr,
|
|||||||
BGP_FLOWSPEC_NLRI_STRING_MAX,
|
BGP_FLOWSPEC_NLRI_STRING_MAX,
|
||||||
"EC{%s}",
|
"EC{%s}",
|
||||||
s == NULL ? "none" : s);
|
s == NULL ? "none" : s);
|
||||||
|
|
||||||
|
if (s)
|
||||||
|
ecommunity_strfree(&s);
|
||||||
}
|
}
|
||||||
snprintf(local_string, BGP_FLOWSPEC_NLRI_STRING_MAX,
|
snprintf(local_string, BGP_FLOWSPEC_NLRI_STRING_MAX,
|
||||||
"FS Rx %s %s %s %s", withdraw ?
|
"FS Rx %s %s %s %s", withdraw ?
|
||||||
|
@ -565,10 +565,11 @@ leak_update(
|
|||||||
if (nexthop_self_flag)
|
if (nexthop_self_flag)
|
||||||
bgp_info_set_flag(bn, new, BGP_INFO_ANNC_NH_SELF);
|
bgp_info_set_flag(bn, new, BGP_INFO_ANNC_NH_SELF);
|
||||||
|
|
||||||
|
bgp_info_extra_get(new);
|
||||||
|
|
||||||
if (num_labels)
|
if (num_labels)
|
||||||
setlabels(new, label, num_labels);
|
setlabels(new, label, num_labels);
|
||||||
|
|
||||||
bgp_info_extra_get(new);
|
|
||||||
new->extra->parent = bgp_info_lock(parent);
|
new->extra->parent = bgp_info_lock(parent);
|
||||||
|
|
||||||
if (bgp_orig)
|
if (bgp_orig)
|
||||||
@ -582,7 +583,7 @@ leak_update(
|
|||||||
struct bgp *bgp_nexthop = bgp;
|
struct bgp *bgp_nexthop = bgp;
|
||||||
int nh_valid;
|
int nh_valid;
|
||||||
|
|
||||||
if (new->extra && new->extra->bgp_orig)
|
if (new->extra->bgp_orig)
|
||||||
bgp_nexthop = new->extra->bgp_orig;
|
bgp_nexthop = new->extra->bgp_orig;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -341,6 +341,7 @@ static int vtysh_execute_func(const char *line, int pager)
|
|||||||
|
|
||||||
if (user_mode) {
|
if (user_mode) {
|
||||||
if (strncmp("en", vector_slot(vline, 0), 2) == 0) {
|
if (strncmp("en", vector_slot(vline, 0), 2) == 0) {
|
||||||
|
cmd_free_strvec(vline);
|
||||||
fprintf(stdout, "%% Command not allowed: enable\n");
|
fprintf(stdout, "%% Command not allowed: enable\n");
|
||||||
return CMD_WARNING;
|
return CMD_WARNING;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user