summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/Makefile2
-rw-r--r--client/client.c45
-rw-r--r--client/client.h6
-rw-r--r--client/commands.c20
-rw-r--r--client/util.c40
-rw-r--r--configure.in11
-rw-r--r--sysdep/unix/Modules2
-rw-r--r--sysdep/unix/client-main.c61
-rw-r--r--tools/Makefile.in10
9 files changed, 115 insertions, 82 deletions
diff --git a/client/Makefile b/client/Makefile
index 0d01724f..867476cc 100644
--- a/client/Makefile
+++ b/client/Makefile
@@ -1,4 +1,4 @@
-source=client.c
+source=client.c commands.c util.c
root-rel=../
dir-name=client
diff --git a/client/client.c b/client/client.c
index 2a43a8de..e9bc827d 100644
--- a/client/client.c
+++ b/client/client.c
@@ -6,21 +6,48 @@
* Can be freely distributed and used under the terms of the GNU GPL.
*/
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+
#include "nest/bird.h"
+#include "lib/resource.h"
#include "client/client.h"
-struct cmd_info {
- char *command;
- char *args;
- char *help;
-};
+static char *opt_list = "";
-static struct cmd_info command_table[] = {
-#include "conf/commands.h"
-};
+static void
+usage(void)
+{
+ fprintf(stderr, "Usage: birdc\n");
+ exit(1);
+}
+
+static void
+parse_args(int argc, char **argv)
+{
+ int c;
+
+ while ((c = getopt(argc, argv, opt_list)) >= 0)
+ switch (c)
+ {
+ default:
+ usage();
+ }
+ if (optind < argc)
+ usage();
+}
int
main(int argc, char **argv)
{
- return client_main(argc, argv); /* Call sysdep code */
+#ifdef HAVE_LIBDMALLOC
+ if (!getenv("DMALLOC_OPTIONS"))
+ dmalloc_debug(0x2f03d00);
+#endif
+
+ parse_args(argc, argv);
+
+ bug("Not implemented yet!");
}
diff --git a/client/client.h b/client/client.h
index b5d6ab16..2e1e050f 100644
--- a/client/client.h
+++ b/client/client.h
@@ -1,11 +1,7 @@
/*
* BIRD Client
*
- * (c) 1999 Martin Mares <mj@ucw.cz>
+ * (c) 1999--2000 Martin Mares <mj@ucw.cz>
*
* Can be freely distributed and used under the terms of the GNU GPL.
*/
-
-/* sysdep code */
-
-int client_main(int argc, char **argv);
diff --git a/client/commands.c b/client/commands.c
new file mode 100644
index 00000000..ea9358d8
--- /dev/null
+++ b/client/commands.c
@@ -0,0 +1,20 @@
+/*
+ * BIRD Client -- Command Handling
+ *
+ * (c) 1999--2000 Martin Mares <mj@ucw.cz>
+ *
+ * Can be freely distributed and used under the terms of the GNU GPL.
+ */
+
+#include "nest/bird.h"
+#include "client/client.h"
+
+struct cmd_info {
+ char *command;
+ char *args;
+ char *help;
+};
+
+struct cmd_info command_table[] = {
+#include "conf/commands.h"
+};
diff --git a/client/util.c b/client/util.c
new file mode 100644
index 00000000..65a1fb20
--- /dev/null
+++ b/client/util.c
@@ -0,0 +1,40 @@
+/*
+ * BIRD Client -- Utility Functions
+ *
+ * (c) 1999--2000 Martin Mares <mj@ucw.cz>
+ *
+ * Can be freely distributed and used under the terms of the GNU GPL.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdarg.h>
+
+#include "nest/bird.h"
+#include "client/client.h"
+
+/* Client versions of logging functions */
+
+void
+bug(char *msg, ...)
+{
+ va_list args;
+
+ va_start(args, msg);
+ fputs("Internal error: ", stderr);
+ vfprintf(stderr, msg, args);
+ fputc('\n', stderr);
+ exit(1);
+}
+
+void
+die(char *msg, ...)
+{
+ va_list args;
+
+ va_start(args, msg);
+ vfprintf(stderr, msg, args);
+ fputc('\n', stderr);
+ exit(1);
+}
diff --git a/configure.in b/configure.in
index 5ef82123..1e1fdba7 100644
--- a/configure.in
+++ b/configure.in
@@ -1,12 +1,13 @@
dnl ** This is a configure script template for BIRD
dnl ** Process it with autoconf to get ./configure
-dnl ** (c) 1999 Martin Mares <mj@ucw.cz>
+dnl ** (c) 1999--2000 Martin Mares <mj@ucw.cz>
AC_REVISION($Id$)
AC_INIT(conf/confbase.Y)
AC_CONFIG_AUX_DIR(tools)
AC_ARG_ENABLE(debug,[ --enable-debug enable internal debugging routines (default: enabled)],,enable_debug=yes)
+AC_ARG_ENABLE(client,[ --enable-client enable building of BIRD client (default: enabled)],,enable_client=yes)
AC_ARG_WITH(sysconfig,[ --with-sysconfig=FILE use specified BIRD system configuration file])
AC_ARG_WITH(protocols,[ --with-protocols=LIST include specified routing protocols (default: rip,static,pipe)],,[with_protocols="rip,static,pipe"])
AC_ARG_WITH(sysinclude,[ --with-sysinclude=PATH search for system includes on specified place])
@@ -133,6 +134,13 @@ else
AC_DEFINE_UNQUOTED(PATH_CONTROL_SOCKET_DIR, "$localstatedir")
fi
+if test "$enable_client" = yes ; then
+ CLIENT=client
+else
+ CLIENT=
+fi
+AC_SUBST(CLIENT)
+
mkdir -p $objdir/sysdep
AC_CONFIG_HEADER($objdir/sysdep/autoconf.h:sysdep/autoconf.h.in)
AC_OUTPUT_COMMANDS(,[CPP="$CPP" $srcdir/tools/mergedirs $srcdir $srcdir_rel $objdir $sysdep_dirs])
@@ -146,5 +154,6 @@ BIRD was configured with the following options:
System configuration: $sysdesc
Debugging: $enable_debug
Routing protocols: $protocols
+ Client: $enable_client
EOF
rm -f $objdir/.*-stamp
diff --git a/sysdep/unix/Modules b/sysdep/unix/Modules
index aca79319..017623e7 100644
--- a/sysdep/unix/Modules
+++ b/sysdep/unix/Modules
@@ -19,5 +19,3 @@ krt-iface.h
krt-set.c
krt-set.h
#endif
-
-client-main.c
diff --git a/sysdep/unix/client-main.c b/sysdep/unix/client-main.c
deleted file mode 100644
index 4fc24338..00000000
--- a/sysdep/unix/client-main.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * BIRD Client -- Unix Entry Point
- *
- * (c) 1999 Martin Mares <mj@ucw.cz>
- *
- * Can be freely distributed and used under the terms of the GNU GPL.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "nest/bird.h"
-#include "lib/resource.h" /* For dmalloc */
-#include "client/client.h"
-#include "nest/cli.h"
-
-#include "unix.h"
-
-static char *opt_list = "";
-
-static void
-usage(void)
-{
- fprintf(stderr, "Usage: birdc\n");
- exit(1);
-}
-
-static void
-parse_args(int argc, char **argv)
-{
- int c;
-
- while ((c = getopt(argc, argv, opt_list)) >= 0)
- switch (c)
- {
- default:
- usage();
- }
- if (optind < argc)
- usage();
-}
-
-void
-cli_echo(unsigned int class, byte *buf)
-{
-}
-
-int
-client_main(int argc, char **argv)
-{
-#ifdef HAVE_LIBDMALLOC
- if (!getenv("DMALLOC_OPTIONS"))
- dmalloc_debug(0x2f03d00);
-#endif
-
- parse_args(argc, argv);
-
- bug("Not implemented yet!");
-}
diff --git a/tools/Makefile.in b/tools/Makefile.in
index bbf4db07..56d65140 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -1,13 +1,17 @@
# Makefile for the BIRD Internet Routing Daemon
-# (c) 1999 Martin Mares <mj@ucw.cz>
+# (c) 1999--2000 Martin Mares <mj@ucw.cz>
include Rules
srcdir_abs := $(shell cd $(srcdir) ; pwd)
-.PHONY: all subdir depend clean distclean tags
+.PHONY: all daemon client subdir depend clean distclean tags
-all: .dep-stamp subdir $(exedir)/bird $(exedir)/birdc
+all: .dep-stamp subdir daemon @CLIENT@
+
+daemon: $(exedir)/bird
+
+client: $(exedir)/birdc
subdir depend: .dir-stamp
set -e ; for a in $(dynamic-dirs) ; do $(MAKE) -C $$a $@ ; done