From 69394543597a0fd8c161c5c8a0d25c8b1cfa8a93 Mon Sep 17 00:00:00 2001 From: Matthieu Boutier Date: Sat, 28 Jan 2012 10:35:12 +0100 Subject: babeld: state-file was loaded too early. Initial seqno too. --- babeld/babel_main.c | 6 +----- babeld/babel_main.h | 1 + babeld/babeld.c | 2 ++ 3 files changed, 4 insertions(+), 5 deletions(-) (limited to 'babeld') diff --git a/babeld/babel_main.c b/babeld/babel_main.c index c039c880..951da7d1 100644 --- a/babeld/babel_main.c +++ b/babeld/babel_main.c @@ -68,7 +68,6 @@ static char *babel_get_progname(char *argv_0); static void babel_fail(void); static void babel_init_random(void); static void babel_replace_by_null(int fd); -static void babel_load_state_file(void); static void babel_init_signals(void); static void babel_exit_properly(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); vty_read_config (babel_config_file, babel_config_default); - myseqno = (random() & 0xFFFF); - babel_load_state_file(); - /* Create VTY socket */ 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 "/etc/init.d/babeld restart" */ -static void +void babel_load_state_file(void) { time_t reboot_time; diff --git a/babeld/babel_main.h b/babeld/babel_main.h index fb22c58e..2afebc9e 100644 --- a/babeld/babel_main.h +++ b/babeld/babel_main.h @@ -54,4 +54,5 @@ extern int protocol_socket; extern int kernel_socket; extern int max_request_hopcount; +void babel_load_state_file(void); void show_babel_main_configuration (struct vty *vty); diff --git a/babeld/babeld.c b/babeld/babeld.c index d69662c0..33b5d9e1 100644 --- a/babeld/babeld.c +++ b/babeld/babeld.c @@ -173,7 +173,9 @@ babel_read_protocol (struct thread *thread) static int babel_init_routing_process(struct thread *thread) { + myseqno = (random() & 0xFFFF); babel_get_myid(); + babel_load_state_file(); debugf(BABEL_DEBUG_COMMON, "My ID is : %s.", format_eui64(myid)); babel_initial_noise(); babel_main_loop(thread);/* this function self-add to the t_update thread */ -- cgit v1.2.1