Просмотр исходного кода

script paser: snd_proto names not recognized fix

- if (snd_proto==...) did not work anymore when used with proto
  names instead of numbers.
Andrei Pelinescu-Onciul 16 лет назад
Родитель
Сommit
58e8723786
1 измененных файлов с 6 добавлено и 1 удалено
  1. 6 1
      cfg.y

+ 6 - 1
cfg.y

@@ -1813,7 +1813,6 @@ uri_type:
 eint_op_onsend:
 			SNDPORT		{ $$=SNDPORT_O; }
 		|	TOPORT		{ $$=TOPORT_O; }
-		|	SNDPROTO	{ $$=SNDPROTO_O; }
 		|	SNDAF		{ $$=SNDAF_O; }
 		;
 
@@ -1867,6 +1866,12 @@ exp_elem:
 		{ $$=mk_elem($2, PROTO_O, 0, RVE_ST, $3 ); }
 	| PROTO equalop error
 		{ $$=0; yyerror("protocol expected (udp, tcp, tls or sctp)"); }
+	| SNDPROTO equalop %prec EQUAL_T proto
+		{ $$=mk_elem($2, SNDPROTO_O, 0, NUMBER_ST, (void*)$3 ); }
+	| SNDPROTO equalop %prec EQUAL_T rval_expr
+		{ $$=mk_elem($2, SNDPROTO_O, 0, RVE_ST, $3 ); }
+	| SNDPROTO equalop error
+		{ $$=0; yyerror("protocol expected (udp, tcp, tls or sctp)"); }
 	| eip_op strop %prec EQUAL_T ipnet { $$=mk_elem($2, $1, 0, NET_ST, $3); }
 	| eip_op strop %prec EQUAL_T rval_expr {
 			s_tmp.s=0;