Commit e830f3a6 authored by Jan Maria Matejka's avatar Jan Maria Matejka
Browse files

Filters: First try (and first step) on simple method-like builtins

parent 12672285
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ $(daemon): LIBS += $(DAEMON_LIBS)
# Include directories
dirs := client conf doc filter lib nest test $(addprefix proto/,$(protocols)) @sysdep_dirs@

conf-y-targets := $(addprefix $(objdir)/conf/,cf-parse.y keywords.h commands.h)
conf-y-targets := $(addprefix $(objdir)/conf/,cf-parse.y keywords.h commands.h) $(objdir)/filter/methods.h
cf-local = $(conf-y-targets): $(s)config.Y

src-o-files = $(patsubst %.c,$(o)%.o,$(src))
+1 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@
#include "nest/route.h"
#include "nest/protocol.h"
#include "filter/filter.h"
#include "filter/methods.h"
#include "conf/conf.h"
#include "conf/cf-parse.tab.h"
#include "lib/string.h"
+1 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ CF_DECLS
  struct f_inst *x;
  struct f_dynamic_attr fda;
  struct f_static_attr fsa;
  enum f_method efm;
  struct filter *f;
  struct f_tree *e;
  struct f_trie *trie;
+4 −0
Original line number Diff line number Diff line
@@ -39,6 +39,10 @@ m4_define(CF_dyn_rules,)
m4_define(CF_ADDTO, `m4_define([[CF_rule_$1]],m4_ifdef([[CF_rule_$1]],CF_rule_$1 | ,[[m4_define([[CF_dyn_rules]],CF_dyn_rules[[CF_RULE($1)
]])]])$2)DNL')

# Simple filter object methods
m4_define(CF_OBJM, `m4_divert(2)CF_KEYWORDS($1)
m4_divert(3)f_object_method_simple: $1 { $$ = FM_$1; };')

# CLI commands
m4_define(CF_CLI, `m4_define([[CF_cmd]], cmd_[[]]m4_translit($1, [[ ]], _))DNL
m4_divert(2)CF_KEYWORDS(m4_translit($1, [[ ]], [[,]]))
+8 −0
Original line number Diff line number Diff line
@@ -6,3 +6,11 @@ $(cf-local)
tests_src := tree_test.c filter_test.c trie_test.c
tests_targets := $(tests_targets) $(tests-target-files)
tests_objs := $(tests_objs) $(src-o-files)

$(conf-y-targets): $(s)methods.Y

$(o)methods.h: | $(s)gen_methods.m4
$(objdir)/conf/cf-parse.tab.o: $(o)methods.h

$(addprefix $(o), methods.h): $(objdir)/.dir-stamp
$(call clean, methods.h)
Loading