From b9d70dc84e488212328103438bdf4e369c7d27a1 Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Fri, 15 Jan 1999 16:49:17 +0000 Subject: Filters, second try. This time they have their own directory. --- filter/f-util.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 filter/f-util.c (limited to 'filter/f-util.c') diff --git a/filter/f-util.c b/filter/f-util.c new file mode 100644 index 0000000..df6babb --- /dev/null +++ b/filter/f-util.c @@ -0,0 +1,67 @@ +/* + * Filters: utility functions + * + * Copyright 1998 Pavel Machek + * + * Can be freely distributed and used under the terms of the GNU GPL. + */ + +#include +#include +#include +#include + +#include "nest/bird.h" +#include "lib/lists.h" +#include "lib/resource.h" +#include "lib/socket.h" +#include "nest/route.h" +#include "nest/protocol.h" +#include "nest/iface.h" +#include "conf/conf.h" +#include "filter/filter.h" + +struct f_instruction *last_func = NULL; + +static void +interpret(struct f_instruction *what) +{ + struct symbol *sym; + if (!what) + return 0; + switch(what->code) { + case ',': + interpret(what->arg1); + interpret(what->arg2); + break; + case '=': + sym = what->arg1; + sym->aux = what->arg2; + break; + case 'p': + sym = what->arg1; + switch(sym->class) { + case SYM_VARIABLE_INT: + printf( "Printing: %d\n", sym->aux ); + break; + default: + printf( "Unknown type passed to print\n" ); + break; + } + break; + case 'D': + printf( "DEBUGGING PRINT\n" ); + break; + } +} + +void +filters_init(void) +{ + if (!last_func) + printf( "No function defined\n" ); + else { + interpret(last_func); + } +} + -- cgit v1.2.3