From: Ondrej Zajicek Date: Thu, 25 Jun 2009 23:06:12 +0000 (+0200) Subject: Merge branch 'master' into dev X-Git-Tag: v1.2.0~63 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5004d02cb9df1f3ee231632a8e89929f4eb4f088;p=thirdparty%2Fbird.git Merge branch 'master' into dev --- 5004d02cb9df1f3ee231632a8e89929f4eb4f088 diff --cc filter/config.Y index 5cff47eb1,fe79496f5..ee4e638d1 --- a/filter/config.Y +++ b/filter/config.Y @@@ -372,38 -343,6 +372,39 @@@ function_call } ; +symbol: + SYM { + $$ = f_new_inst(); + switch ($1->class) { + case SYM_NUMBER: + $$ = f_new_inst(); + $$->code = 'c'; + $$->aux = T_INT; + $$->a2.i = $1->aux; + break; + case SYM_IPA: + { NEW_F_VAL; $$ = f_new_inst(); $$->code = 'C'; $$->a1.p = val; val->type = T_IP; val->val.px.ip = * (ip_addr *) ($1->def); } + break; + case SYM_VARIABLE | T_BOOL: + case SYM_VARIABLE | T_INT: + case SYM_VARIABLE | T_PAIR: + case SYM_VARIABLE | T_STRING: + case SYM_VARIABLE | T_IP: + case SYM_VARIABLE | T_PREFIX: + case SYM_VARIABLE | T_PREFIX_SET: + case SYM_VARIABLE | T_SET: + case SYM_VARIABLE | T_PATH: + case SYM_VARIABLE | T_PATH_MASK: + case SYM_VARIABLE | T_CLIST: - $$->code = 'C'; ++ $$->code = 'V'; + $$->a1.p = $1->def; ++ $$->a2.p = $1->name; + break; + default: + cf_error("%s: variable expected.", $1->name ); + } + } + static_attr: FROM { $$ = f_new_inst(); $$->aux = T_IP; $$->a2.i = OFFSETOF(struct rta, from); $$->a1.i = 1; }