mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-29 01:29:38 +00:00
Merge pull request #146 from opensourcerouting/assorted-stable
assorted fixes for stable/2.0
This commit is contained in:
commit
5a2bd83d9d
@ -91,7 +91,7 @@ struct bgp_dump
|
|||||||
struct thread *t_interval;
|
struct thread *t_interval;
|
||||||
};
|
};
|
||||||
|
|
||||||
static int bgp_dump_unset (struct vty *vty, struct bgp_dump *bgp_dump);
|
static int bgp_dump_unset (struct bgp_dump *bgp_dump);
|
||||||
static int bgp_dump_interval_func (struct thread *);
|
static int bgp_dump_interval_func (struct thread *);
|
||||||
|
|
||||||
/* BGP packet dump output buffer. */
|
/* BGP packet dump output buffer. */
|
||||||
@ -661,7 +661,7 @@ bgp_dump_set (struct vty *vty, struct bgp_dump *bgp_dump,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Removing previous config */
|
/* Removing previous config */
|
||||||
bgp_dump_unset(vty, bgp_dump);
|
bgp_dump_unset(bgp_dump);
|
||||||
|
|
||||||
if (interval_str)
|
if (interval_str)
|
||||||
{
|
{
|
||||||
@ -700,7 +700,7 @@ bgp_dump_set (struct vty *vty, struct bgp_dump *bgp_dump,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
bgp_dump_unset (struct vty *vty, struct bgp_dump *bgp_dump)
|
bgp_dump_unset (struct bgp_dump *bgp_dump)
|
||||||
{
|
{
|
||||||
/* Removing file name. */
|
/* Removing file name. */
|
||||||
if (bgp_dump->filename)
|
if (bgp_dump->filename)
|
||||||
@ -815,7 +815,7 @@ DEFUN (no_dump_bgp_all,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return bgp_dump_unset (vty, bgp_dump_struct);
|
return bgp_dump_unset (bgp_dump_struct);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* BGP node structure. */
|
/* BGP node structure. */
|
||||||
@ -913,6 +913,10 @@ bgp_dump_init (void)
|
|||||||
void
|
void
|
||||||
bgp_dump_finish (void)
|
bgp_dump_finish (void)
|
||||||
{
|
{
|
||||||
|
bgp_dump_unset (&bgp_dump_all);
|
||||||
|
bgp_dump_unset (&bgp_dump_updates);
|
||||||
|
bgp_dump_unset (&bgp_dump_routes);
|
||||||
|
|
||||||
stream_free (bgp_dump_obuf);
|
stream_free (bgp_dump_obuf);
|
||||||
bgp_dump_obuf = NULL;
|
bgp_dump_obuf = NULL;
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,7 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|||||||
#include "queue.h"
|
#include "queue.h"
|
||||||
#include "vrf.h"
|
#include "vrf.h"
|
||||||
#include "bfd.h"
|
#include "bfd.h"
|
||||||
|
#include "sockopt.h"
|
||||||
|
|
||||||
#include "bgpd/bgpd.h"
|
#include "bgpd/bgpd.h"
|
||||||
#include "bgpd/bgp_attr.h"
|
#include "bgpd/bgp_attr.h"
|
||||||
@ -309,6 +310,8 @@ bgp_exit (int status)
|
|||||||
if (zlog_default)
|
if (zlog_default)
|
||||||
closezlog (zlog_default);
|
closezlog (zlog_default);
|
||||||
|
|
||||||
|
memset (bm, 0, sizeof (*bm));
|
||||||
|
|
||||||
if (bgp_debug_count())
|
if (bgp_debug_count())
|
||||||
log_memstats_stderr ("bgpd");
|
log_memstats_stderr ("bgpd");
|
||||||
exit (status);
|
exit (status);
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
#include "plist.h"
|
#include "plist.h"
|
||||||
#include "zclient.h"
|
#include "zclient.h"
|
||||||
#include "vrf.h"
|
#include "vrf.h"
|
||||||
|
#include "sockopt.h"
|
||||||
#include "qobj.h"
|
#include "qobj.h"
|
||||||
|
|
||||||
#include "isisd/dict.h"
|
#include "isisd/dict.h"
|
||||||
@ -246,7 +247,6 @@ main (int argc, char **argv, char **envp)
|
|||||||
struct thread thread;
|
struct thread thread;
|
||||||
char *config_file = NULL;
|
char *config_file = NULL;
|
||||||
char *vty_addr = NULL;
|
char *vty_addr = NULL;
|
||||||
char *vty_sock_name;
|
|
||||||
int dryrun = 0;
|
int dryrun = 0;
|
||||||
|
|
||||||
/* Get the programname without the preceding path. */
|
/* Get the programname without the preceding path. */
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
#include "sigevent.h"
|
#include "sigevent.h"
|
||||||
#include "zclient.h"
|
#include "zclient.h"
|
||||||
#include "vrf.h"
|
#include "vrf.h"
|
||||||
|
#include "sockopt.h"
|
||||||
#include "qobj.h"
|
#include "qobj.h"
|
||||||
|
|
||||||
static void ldpd_shutdown(void);
|
static void ldpd_shutdown(void);
|
||||||
@ -224,7 +225,6 @@ main(int argc, char *argv[])
|
|||||||
char *p;
|
char *p;
|
||||||
char *vty_addr = NULL;
|
char *vty_addr = NULL;
|
||||||
int vty_port = LDP_VTY_PORT;
|
int vty_port = LDP_VTY_PORT;
|
||||||
char *vty_sock_name;
|
|
||||||
char *ctl_sock_custom_path = NULL;
|
char *ctl_sock_custom_path = NULL;
|
||||||
char *ctl_sock_name;
|
char *ctl_sock_name;
|
||||||
int daemon_mode = 0;
|
int daemon_mode = 0;
|
||||||
|
@ -328,6 +328,9 @@ prefix_list_get (afi_t afi, int orf, const char *name)
|
|||||||
return plist;
|
return plist;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void prefix_list_trie_del (struct prefix_list *plist,
|
||||||
|
struct prefix_list_entry *pentry);
|
||||||
|
|
||||||
/* Delete prefix-list from prefix_list_master and free it. */
|
/* Delete prefix-list from prefix_list_master and free it. */
|
||||||
static void
|
static void
|
||||||
prefix_list_delete (struct prefix_list *plist)
|
prefix_list_delete (struct prefix_list *plist)
|
||||||
@ -341,6 +344,7 @@ prefix_list_delete (struct prefix_list *plist)
|
|||||||
for (pentry = plist->head; pentry; pentry = next)
|
for (pentry = plist->head; pentry; pentry = next)
|
||||||
{
|
{
|
||||||
next = pentry->next;
|
next = pentry->next;
|
||||||
|
prefix_list_trie_del (plist, pentry);
|
||||||
prefix_list_entry_free (pentry);
|
prefix_list_entry_free (pentry);
|
||||||
plist->count--;
|
plist->count--;
|
||||||
}
|
}
|
||||||
|
@ -31,9 +31,9 @@
|
|||||||
|
|
||||||
/* Replace the path of given defaultpath with newpath, but keep filename */
|
/* Replace the path of given defaultpath with newpath, but keep filename */
|
||||||
void
|
void
|
||||||
set_socket_path (char *path, char *defaultpath, char *newpath, int maxsize)
|
set_socket_path (char *path, const char *defaultpath, char *newpath, int maxsize)
|
||||||
{
|
{
|
||||||
char *sock_name;
|
const char *sock_name;
|
||||||
|
|
||||||
sock_name = strrchr(defaultpath, '/');
|
sock_name = strrchr(defaultpath, '/');
|
||||||
if (sock_name)
|
if (sock_name)
|
||||||
|
@ -25,7 +25,8 @@
|
|||||||
#include "sockunion.h"
|
#include "sockunion.h"
|
||||||
|
|
||||||
/* Override (vty) socket paths, but keep the filename */
|
/* Override (vty) socket paths, but keep the filename */
|
||||||
extern void set_socket_path (char *path, char *defaultpath, char *newpath, int maxsize);
|
extern void set_socket_path (char *path, const char *defaultpath,
|
||||||
|
char *newpath, int maxsize);
|
||||||
|
|
||||||
extern void setsockopt_so_recvbuf (int sock, int size);
|
extern void setsockopt_so_recvbuf (int sock, int size);
|
||||||
extern void setsockopt_so_sendbuf (const int sock, int size);
|
extern void setsockopt_so_sendbuf (const int sock, int size);
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
#include "zclient.h"
|
#include "zclient.h"
|
||||||
#include "vrf.h"
|
#include "vrf.h"
|
||||||
#include "bfd.h"
|
#include "bfd.h"
|
||||||
|
#include "sockopt.h"
|
||||||
|
|
||||||
#include "ospf6d.h"
|
#include "ospf6d.h"
|
||||||
#include "ospf6_top.h"
|
#include "ospf6_top.h"
|
||||||
@ -239,7 +240,6 @@ main (int argc, char *argv[], char *envp[])
|
|||||||
int opt;
|
int opt;
|
||||||
char *vty_addr = NULL;
|
char *vty_addr = NULL;
|
||||||
int vty_port = 0;
|
int vty_port = 0;
|
||||||
char *vty_sock_name;
|
|
||||||
char *config_file = NULL;
|
char *config_file = NULL;
|
||||||
struct thread thread;
|
struct thread thread;
|
||||||
int dryrun = 0;
|
int dryrun = 0;
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
#include "sigevent.h"
|
#include "sigevent.h"
|
||||||
#include "zclient.h"
|
#include "zclient.h"
|
||||||
#include "vrf.h"
|
#include "vrf.h"
|
||||||
|
#include "sockopt.h"
|
||||||
|
|
||||||
#include "ospfd/ospfd.h"
|
#include "ospfd/ospfd.h"
|
||||||
#include "ospfd/ospf_interface.h"
|
#include "ospfd/ospf_interface.h"
|
||||||
@ -194,7 +195,6 @@ main (int argc, char **argv)
|
|||||||
char *vty_addr = NULL;
|
char *vty_addr = NULL;
|
||||||
int vty_port = OSPF_VTY_PORT;
|
int vty_port = OSPF_VTY_PORT;
|
||||||
char vty_path[100];
|
char vty_path[100];
|
||||||
char *vty_sock_name;
|
|
||||||
int daemon_mode = 0;
|
int daemon_mode = 0;
|
||||||
char *config_file = NULL;
|
char *config_file = NULL;
|
||||||
char *progname;
|
char *progname;
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
#include "prefix.h"
|
#include "prefix.h"
|
||||||
#include "plist.h"
|
#include "plist.h"
|
||||||
#include "vrf.h"
|
#include "vrf.h"
|
||||||
|
#include "sockopt.h"
|
||||||
|
|
||||||
#include "pimd.h"
|
#include "pimd.h"
|
||||||
#include "pim_version.h"
|
#include "pim_version.h"
|
||||||
@ -133,7 +134,6 @@ Report bugs to %s\n", progname, PIMD_BUG_ADDRESS);
|
|||||||
int main(int argc, char** argv, char** envp) {
|
int main(int argc, char** argv, char** envp) {
|
||||||
char *p;
|
char *p;
|
||||||
char *vty_addr = NULL;
|
char *vty_addr = NULL;
|
||||||
char *vty_sock_name;
|
|
||||||
int vty_port = -1;
|
int vty_port = -1;
|
||||||
int daemon_mode = 0;
|
int daemon_mode = 0;
|
||||||
char *config_file = NULL;
|
char *config_file = NULL;
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
#include "sigevent.h"
|
#include "sigevent.h"
|
||||||
#include "zclient.h"
|
#include "zclient.h"
|
||||||
#include "vrf.h"
|
#include "vrf.h"
|
||||||
|
#include "sockopt.h"
|
||||||
|
|
||||||
#include "ripd/ripd.h"
|
#include "ripd/ripd.h"
|
||||||
|
|
||||||
@ -201,7 +202,6 @@ main (int argc, char **argv)
|
|||||||
int dryrun = 0;
|
int dryrun = 0;
|
||||||
char *progname;
|
char *progname;
|
||||||
struct thread thread;
|
struct thread thread;
|
||||||
char *vty_sock_name;
|
|
||||||
|
|
||||||
/* Set umask before anything for security */
|
/* Set umask before anything for security */
|
||||||
umask (0027);
|
umask (0027);
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#include "privs.h"
|
#include "privs.h"
|
||||||
#include "sigevent.h"
|
#include "sigevent.h"
|
||||||
#include "vrf.h"
|
#include "vrf.h"
|
||||||
|
#include "sockopt.h"
|
||||||
|
|
||||||
#include "ripngd/ripngd.h"
|
#include "ripngd/ripngd.h"
|
||||||
|
|
||||||
@ -201,7 +202,6 @@ main (int argc, char **argv)
|
|||||||
char *progname;
|
char *progname;
|
||||||
struct thread thread;
|
struct thread thread;
|
||||||
int dryrun = 0;
|
int dryrun = 0;
|
||||||
char *vty_sock_name;
|
|
||||||
|
|
||||||
/* Set umask before anything for security */
|
/* Set umask before anything for security */
|
||||||
umask (0027);
|
umask (0027);
|
||||||
|
@ -272,7 +272,7 @@ main (int argc, char **argv, char **env)
|
|||||||
int boot_flag = 0;
|
int boot_flag = 0;
|
||||||
const char *daemon_name = NULL;
|
const char *daemon_name = NULL;
|
||||||
const char *inputfile = NULL;
|
const char *inputfile = NULL;
|
||||||
char *vtysh_configfile_name;
|
const char *vtysh_configfile_name;
|
||||||
struct cmd_rec {
|
struct cmd_rec {
|
||||||
const char *line;
|
const char *line;
|
||||||
struct cmd_rec *next;
|
struct cmd_rec *next;
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
#include "privs.h"
|
#include "privs.h"
|
||||||
#include "sigevent.h"
|
#include "sigevent.h"
|
||||||
#include "vrf.h"
|
#include "vrf.h"
|
||||||
|
#include "sockopt.h"
|
||||||
|
|
||||||
#include "zebra/rib.h"
|
#include "zebra/rib.h"
|
||||||
#include "zebra/zserv.h"
|
#include "zebra/zserv.h"
|
||||||
@ -265,7 +266,6 @@ main (int argc, char **argv)
|
|||||||
char *p;
|
char *p;
|
||||||
char *vty_addr = NULL;
|
char *vty_addr = NULL;
|
||||||
int vty_port = ZEBRA_VTY_PORT;
|
int vty_port = ZEBRA_VTY_PORT;
|
||||||
char *vty_sock_name;
|
|
||||||
int dryrun = 0;
|
int dryrun = 0;
|
||||||
int batch_mode = 0;
|
int batch_mode = 0;
|
||||||
int daemon_mode = 0;
|
int daemon_mode = 0;
|
||||||
|
@ -42,6 +42,8 @@
|
|||||||
#include "vrf.h"
|
#include "vrf.h"
|
||||||
|
|
||||||
#include "zebra/rib.h"
|
#include "zebra/rib.h"
|
||||||
|
#include "zebra/zserv.h"
|
||||||
|
#include "zebra/zebra_vrf.h"
|
||||||
|
|
||||||
#include "zebra_fpm_private.h"
|
#include "zebra_fpm_private.h"
|
||||||
|
|
||||||
|
@ -217,6 +217,7 @@ zebra_vrf_delete (struct vrf *vrf)
|
|||||||
{
|
{
|
||||||
struct zebra_vrf *zvrf = vrf->info;
|
struct zebra_vrf *zvrf = vrf->info;
|
||||||
struct route_table *table;
|
struct route_table *table;
|
||||||
|
rib_table_info_t *info;
|
||||||
u_int32_t table_id;
|
u_int32_t table_id;
|
||||||
afi_t afi;
|
afi_t afi;
|
||||||
safi_t safi;
|
safi_t safi;
|
||||||
@ -273,8 +274,9 @@ zebra_vrf_delete (struct vrf *vrf)
|
|||||||
for (safi = SAFI_UNICAST; safi <= SAFI_MULTICAST; safi++)
|
for (safi = SAFI_UNICAST; safi <= SAFI_MULTICAST; safi++)
|
||||||
{
|
{
|
||||||
table = zvrf->table[afi][safi];
|
table = zvrf->table[afi][safi];
|
||||||
XFREE (MTYPE_RIB_TABLE_INFO, table->info);
|
info = table->info;
|
||||||
route_table_finish (table);
|
route_table_finish (table);
|
||||||
|
XFREE (MTYPE_RIB_TABLE_INFO, info);
|
||||||
|
|
||||||
table = zvrf->stable[afi][safi];
|
table = zvrf->stable[afi][safi];
|
||||||
route_table_finish (table);
|
route_table_finish (table);
|
||||||
@ -284,8 +286,9 @@ zebra_vrf_delete (struct vrf *vrf)
|
|||||||
if (zvrf->other_table[afi][table_id])
|
if (zvrf->other_table[afi][table_id])
|
||||||
{
|
{
|
||||||
table = zvrf->other_table[afi][table_id];
|
table = zvrf->other_table[afi][table_id];
|
||||||
XFREE (MTYPE_RIB_TABLE_INFO, table->info);
|
info = table->info;
|
||||||
route_table_finish (table);
|
route_table_finish (table);
|
||||||
|
XFREE (MTYPE_RIB_TABLE_INFO, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
route_table_finish (zvrf->rnh_table[afi]);
|
route_table_finish (zvrf->rnh_table[afi]);
|
||||||
|
Loading…
Reference in New Issue
Block a user