babeld: state-file was loaded too early. Initial seqno too.

This commit is contained in:
Matthieu Boutier 2012-01-28 10:35:12 +01:00 committed by Paul Jakma
parent 210f6f6628
commit 6939454359
3 changed files with 4 additions and 5 deletions

View File

@ -68,7 +68,6 @@ static char *babel_get_progname(char *argv_0);
static void babel_fail(void); static void babel_fail(void);
static void babel_init_random(void); static void babel_init_random(void);
static void babel_replace_by_null(int fd); static void babel_replace_by_null(int fd);
static void babel_load_state_file(void);
static void babel_init_signals(void); static void babel_init_signals(void);
static void babel_exit_properly(void); static void babel_exit_properly(void);
static void babel_save_state_file(void); static void babel_save_state_file(void);
@ -304,9 +303,6 @@ babel_init(int argc, char **argv)
zlog_set_level (NULL, ZLOG_DEST_STDOUT, ZLOG_DISABLED); zlog_set_level (NULL, ZLOG_DEST_STDOUT, ZLOG_DISABLED);
vty_read_config (babel_config_file, babel_config_default); vty_read_config (babel_config_file, babel_config_default);
myseqno = (random() & 0xFFFF);
babel_load_state_file();
/* Create VTY socket */ /* Create VTY socket */
vty_serv_sock (babel_vty_addr, babel_vty_port, BABEL_VTYSH_PATH); vty_serv_sock (babel_vty_addr, babel_vty_port, BABEL_VTYSH_PATH);
@ -380,7 +376,7 @@ babel_replace_by_null(int fd)
Load the state file: check last babeld's running state, usefull in case of Load the state file: check last babeld's running state, usefull in case of
"/etc/init.d/babeld restart" "/etc/init.d/babeld restart"
*/ */
static void void
babel_load_state_file(void) babel_load_state_file(void)
{ {
time_t reboot_time; time_t reboot_time;

View File

@ -54,4 +54,5 @@ extern int protocol_socket;
extern int kernel_socket; extern int kernel_socket;
extern int max_request_hopcount; extern int max_request_hopcount;
void babel_load_state_file(void);
void show_babel_main_configuration (struct vty *vty); void show_babel_main_configuration (struct vty *vty);

View File

@ -173,7 +173,9 @@ babel_read_protocol (struct thread *thread)
static int static int
babel_init_routing_process(struct thread *thread) babel_init_routing_process(struct thread *thread)
{ {
myseqno = (random() & 0xFFFF);
babel_get_myid(); babel_get_myid();
babel_load_state_file();
debugf(BABEL_DEBUG_COMMON, "My ID is : %s.", format_eui64(myid)); debugf(BABEL_DEBUG_COMMON, "My ID is : %s.", format_eui64(myid));
babel_initial_noise(); babel_initial_noise();
babel_main_loop(thread);/* this function self-add to the t_update thread */ babel_main_loop(thread);/* this function self-add to the t_update thread */