From ddf191eafc079cb26e2956a611d59e5235de1798 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Tue, 25 Jun 2013 11:44:01 +0200 Subject: nat: Allow to use the prefix lookup to rewrite numbers * Increase the rewritten rule to five digits (this is the easiest for the unit test). This will add another 40kb to the runtime size. * Create a unit test that tests adding and removing the prefix rules. * Use the regexp match to replace from one package --- openbsc/src/osmo-bsc_nat/bsc_nat_rewrite_trie.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'openbsc/src/osmo-bsc_nat/bsc_nat_rewrite_trie.c') diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_rewrite_trie.c b/openbsc/src/osmo-bsc_nat/bsc_nat_rewrite_trie.c index 57043acc9..faceb59b5 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_rewrite_trie.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_rewrite_trie.c @@ -21,6 +21,7 @@ #include #include +#include #include #include @@ -238,3 +239,21 @@ void nat_rewrite_dump(struct nat_rewrite *rewrite) { nat_rewrite_dump_rec(&rewrite->rule); } + +static void nat_rewrite_dump_rec_vty(struct vty *vty, struct nat_rewrite_rule *rule) +{ + int i; + if (!rule->empty) + vty_out(vty, "%s,%s%s", rule->prefix, rule->rewrite, VTY_NEWLINE); + + for (i = 0; i < ARRAY_SIZE(rule->rules); ++i) { + if (!rule->rules[i]) + continue; + nat_rewrite_dump_rec_vty(vty, rule->rules[i]); + } +} + +void nat_rewrite_dump_vty(struct vty *vty, struct nat_rewrite *rewrite) +{ + nat_rewrite_dump_rec_vty(vty, &rewrite->rule); +} -- cgit v1.2.3