1
0
mirror of https://gitlab.labs.nic.cz/labs/bird.git synced 2024-05-11 16:54:54 +00:00

Put client on a stony ground. The whole client is going to be system-specific

(the current version UNIX-specific) anyway, so it's useless to try splitting it
to sysdep and generic part. Instead of this, configure script decides (based on
system type and user's wish) what (if any) client should be built and what
autoconfiguration it requires. Also, the client provides its own die/bug/...
functions.
This commit is contained in:
Martin Mares
2000-01-19 15:07:00 +00:00
parent f50b9e48b9
commit 9fac310d1a
9 changed files with 115 additions and 82 deletions

View File

@@ -1,4 +1,4 @@
source=client.c
source=client.c commands.c util.c
root-rel=../
dir-name=client

View File

@@ -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!");
}

View File

@@ -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);

20
client/commands.c Normal file
View File

@@ -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"
};

40
client/util.c Normal file
View File

@@ -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);
}