mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 01:31:55 +00:00
Got rid of startup functions and filters_postconfig().
By the way, how do you expect pointers to fit in an int?
This commit is contained in:
parent
1c20608e02
commit
3b1c523d79
5
TODO
5
TODO
@ -9,6 +9,8 @@ Core
|
|||||||
- filters: deletion of mandatory attributes?
|
- filters: deletion of mandatory attributes?
|
||||||
- filters: user defined attributes?
|
- filters: user defined attributes?
|
||||||
|
|
||||||
|
- kernel: persistent mode
|
||||||
|
|
||||||
- cli: show tables?
|
- cli: show tables?
|
||||||
|
|
||||||
- client: Ctrl-R eats one more enter
|
- client: Ctrl-R eats one more enter
|
||||||
@ -32,9 +34,6 @@ Documentation
|
|||||||
Globals
|
Globals
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
- right usage of DBG vs. debug
|
- right usage of DBG vs. debug
|
||||||
- kill preconfigs?
|
|
||||||
- check dump functions
|
|
||||||
- cleanup debugging calls
|
|
||||||
- logging and tracing; use appropriate log levels
|
- logging and tracing; use appropriate log levels
|
||||||
- check incoming packets and log errors!!
|
- check incoming packets and log errors!!
|
||||||
- check log calls for trailing newlines and log levels followed by comma
|
- check log calls for trailing newlines and log levels followed by comma
|
||||||
|
@ -58,7 +58,6 @@ config_parse(struct config *c)
|
|||||||
protos_preconfig(c);
|
protos_preconfig(c);
|
||||||
rt_preconfig(c);
|
rt_preconfig(c);
|
||||||
cf_parse();
|
cf_parse();
|
||||||
filters_postconfig(); /* FIXME: Do we really need this? */
|
|
||||||
protos_postconfig(c);
|
protos_postconfig(c);
|
||||||
#ifdef IPV6
|
#ifdef IPV6
|
||||||
if (!c->router_id)
|
if (!c->router_id)
|
||||||
|
@ -170,14 +170,7 @@ function_body:
|
|||||||
CF_ADDTO(conf, function_def)
|
CF_ADDTO(conf, function_def)
|
||||||
function_def:
|
function_def:
|
||||||
FUNCTION SYM { DBG( "Beginning of function %s\n", $2->name ); cf_push_scope($2); } function_params function_body {
|
FUNCTION SYM { DBG( "Beginning of function %s\n", $2->name ); cf_push_scope($2); } function_params function_body {
|
||||||
extern struct f_inst *startup_func, *test1_func, *test2_func;
|
|
||||||
cf_define_symbol($2, SYM_FUNCTION, $5);
|
cf_define_symbol($2, SYM_FUNCTION, $5);
|
||||||
if (!strcasecmp($2->name, "__startup"))
|
|
||||||
startup_func = $5;
|
|
||||||
if (!strcasecmp($2->name, "__test1"))
|
|
||||||
test1_func = $5;
|
|
||||||
if (!strcasecmp($2->name, "__test2"))
|
|
||||||
test2_func = $5;
|
|
||||||
$2->aux = (int) $4;
|
$2->aux = (int) $4;
|
||||||
$2->aux2 = $5;
|
$2->aux2 = $5;
|
||||||
DBG("Hmm, we've got one function here - %s\n", $2->name);
|
DBG("Hmm, we've got one function here - %s\n", $2->name);
|
||||||
|
@ -43,8 +43,6 @@
|
|||||||
|
|
||||||
#define P(a,b) ((a<<8) | b)
|
#define P(a,b) ((a<<8) | b)
|
||||||
|
|
||||||
struct f_inst *startup_func = NULL, *test1_func, *test2_func;
|
|
||||||
|
|
||||||
#define CMP_ERROR 999
|
#define CMP_ERROR 999
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -682,25 +680,6 @@ f_eval_int(struct f_inst *expr)
|
|||||||
return res.val.i;
|
return res.val.i;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
filters_postconfig(void)
|
|
||||||
{
|
|
||||||
struct f_val res;
|
|
||||||
|
|
||||||
#if 1
|
|
||||||
if (!i_same(test1_func, test2_func))
|
|
||||||
bug("i_same does not work");
|
|
||||||
#endif
|
|
||||||
if (startup_func) {
|
|
||||||
debug( "Launching startup function...\n" );
|
|
||||||
f_pool = lp_new(&root_pool, 1024);
|
|
||||||
res = interpret(startup_func);
|
|
||||||
if (res.type == F_ERROR)
|
|
||||||
die( "Startup function resulted in error." );
|
|
||||||
debug( "done\n" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* filter_same - compare two filters
|
* filter_same - compare two filters
|
||||||
* @new: first filter to be compared
|
* @new: first filter to be compared
|
||||||
|
@ -58,7 +58,6 @@ struct filter {
|
|||||||
struct f_inst *root;
|
struct f_inst *root;
|
||||||
};
|
};
|
||||||
|
|
||||||
void filters_postconfig(void);
|
|
||||||
struct f_inst *f_new_inst(void);
|
struct f_inst *f_new_inst(void);
|
||||||
struct f_inst *f_new_dynamic_attr(int type, int f_type, int code); /* Type as core knows it, type as filters know it, and code of dynamic attribute */
|
struct f_inst *f_new_dynamic_attr(int type, int f_type, int code); /* Type as core knows it, type as filters know it, and code of dynamic attribute */
|
||||||
struct f_tree *f_new_tree(void);
|
struct f_tree *f_new_tree(void);
|
||||||
|
Loading…
Reference in New Issue
Block a user