소스 검색

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 년 전
부모
커밋
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;