]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Merge branch 'master' into dev
authorOndrej Zajicek <santiago@crfreenet.org>
Thu, 25 Jun 2009 23:06:12 +0000 (01:06 +0200)
committerOndrej Zajicek <santiago@crfreenet.org>
Thu, 25 Jun 2009 23:06:12 +0000 (01:06 +0200)
1  2 
filter/config.Y
filter/filter.c
filter/test.conf
sysdep/config.h

diff --cc filter/config.Y
index 5cff47eb17be8019916afbf0f364628e0fe51754,fe79496f55c893be801a1b3dc8f4d1b4c35e8c17..ee4e638d12839972c73e83220d2ff8c1a617c6a4
@@@ -372,38 -343,6 +372,39 @@@ function_call
     }
   ;
  
-        $$->code = 'C';
 +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 = '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; }
  
diff --cc filter/filter.c
Simple merge
Simple merge
diff --cc sysdep/config.h
Simple merge