2003-06-15 Paul Jakma <paul@dishone.st>
* lib/vty.{c,h}: Remove vty layer depending on a 'master' global,
pass the thread master in explicitly to vty_init. Sort out some
header dependency problems with lib/command.h
* zebra/: Move globals to struct zebrad. Update vty_init().
* (.*)/\1_main.c: update call to vty_init().
diff --git a/lib/command.c b/lib/command.c
index 5d42933..ade413b 100644
--- a/lib/command.c
+++ b/lib/command.c
@@ -20,11 +20,14 @@
#include <zebra.h>
-#include "command.h"
+
#include "memory.h"
#include "log.h"
#include "version.h"
#include "thread.h"
+#include "vector.h"
+#include "vty.h"
+#include "command.h"
/* Command vector which includes some level of command lists. Normally
each daemon maintains each own cmdvec. */
diff --git a/lib/vty.c b/lib/vty.c
index 4d6eb30..c38ae94 100644
--- a/lib/vty.c
+++ b/lib/vty.c
@@ -23,16 +23,17 @@
#include <zebra.h>
#include "linklist.h"
+#include "thread.h"
#include "buffer.h"
#include "version.h"
#include "command.h"
#include "sockunion.h"
-#include "thread.h"
#include "memory.h"
#include "str.h"
#include "log.h"
#include "prefix.h"
#include "filter.h"
+#include "vty.h"
#include "privs.h"
/* Vty events */
@@ -2342,8 +2343,7 @@
}
/* Master of the threads. */
-extern struct thread_master *master;
-/* struct thread_master *master; */
+static struct thread_master *master;
static void
vty_event (enum event event, int sock, struct vty *vty)
@@ -2791,13 +2791,15 @@
/* Install vty's own commands like `who' command. */
void
-vty_init ()
+vty_init (struct thread_master *master_thread)
{
/* For further configuration read, preserve current directory. */
vty_save_cwd ();
vtyvec = vector_init (VECTOR_MIN_SIZE);
+ master = master_thread;
+
/* Initilize server thread vector. */
Vvty_serv_thread = vector_init (VECTOR_MIN_SIZE);
diff --git a/lib/vty.h b/lib/vty.h
index 4d2a6a0..aaf8a5b 100644
--- a/lib/vty.h
+++ b/lib/vty.h
@@ -21,6 +21,8 @@
#ifndef _ZEBRA_VTY_H
#define _ZEBRA_VTY_H
+#include "thread.h"
+
#define VTY_BUFSIZ 512
#define VTY_MAXHIST 20
@@ -184,7 +186,7 @@
extern char integrate_default[];
/* Prototypes. */
-void vty_init (void);
+void vty_init (struct thread_master *);
void vty_init_vtysh (void);
void vty_reset (void);
void vty_finish (void);