Module: sip-router Branch: andrei/blst_send_flags Commit: 0e055147442c58c2d029702fa618e448da9cf98f URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=0e055147...
Author: Andrei Pelinescu-Onciul andrei@iptel.org Committer: Andrei Pelinescu-Onciul andrei@iptel.org Date: Wed Feb 17 09:58:21 2010 +0100
core: cfg script support for blacklist ignore masks
The blacklist ignore mask can now be set from the script (not only at runtime): dst_blacklist_udp_imask dst_blacklist_tcp_imask dst_blacklist_tls_imask dst_blacklist_sctp_imask
E.g. dst_blacklist_udp_imask=16
Possible values: 0 -disabled 2 - send error 4 - connect error 8 - icmp (reserverd for future use) 16 - transaction timeout 32 - administratively prohibited (manually set)
---
cfg.lex | 13 +++++++++++++ cfg.y | 33 ++++++++++++++++++++++++++++++--- 2 files changed, 43 insertions(+), 3 deletions(-)
diff --git a/cfg.lex b/cfg.lex index 61e694e..799b606 100644 --- a/cfg.lex +++ b/cfg.lex @@ -80,6 +80,7 @@ * 2009-03-10 added SET_USERPHONE action (Miklos) * 2009-04-24 add strlen, strempty and defined operators (andrei) * 2009-03-07 RETCODE, it's now a core pvar (andrei) + * 2010-02-17 added DST_BLST_{UDP,TCP,TLS,SCTP}_IMASK (andrei) */
@@ -343,6 +344,10 @@ USE_DST_BLST use_dst_blacklist DST_BLST_MEM dst_blacklist_mem DST_BLST_TTL dst_blacklist_expire|dst_blacklist_ttl DST_BLST_GC_INT dst_blacklist_gc_interval +DST_BLST_UDP_IMASK dst_blacklist_udp_imask +DST_BLST_TCP_IMASK dst_blacklist_tcp_imask +DST_BLST_TLS_IMASK dst_blacklist_tls_imask +DST_BLST_SCTP_IMASK dst_blacklist_sctp_imask
PORT port @@ -680,6 +685,14 @@ EAT_ABLE [\ \t\b\r] return DST_BLST_TTL; } <INITIAL>{DST_BLST_GC_INT} { count(); yylval.strval=yytext; return DST_BLST_GC_INT; } +<INITIAL>{DST_BLST_UDP_IMASK} { count(); yylval.strval=yytext; + return DST_BLST_UDP_IMASK; } +<INITIAL>{DST_BLST_TCP_IMASK} { count(); yylval.strval=yytext; + return DST_BLST_TCP_IMASK; } +<INITIAL>{DST_BLST_TLS_IMASK} { count(); yylval.strval=yytext; + return DST_BLST_TLS_IMASK; } +<INITIAL>{DST_BLST_SCTP_IMASK} { count(); yylval.strval=yytext; + return DST_BLST_SCTP_IMASK; } <INITIAL>{PORT} { count(); yylval.strval=yytext; return PORT; } <INITIAL>{STAT} { count(); yylval.strval=yytext; return STAT; } <INITIAL>{MAXBUFFER} { count(); yylval.strval=yytext; return MAXBUFFER; } diff --git a/cfg.y b/cfg.y index 234b2d0..22c6dd4 100644 --- a/cfg.y +++ b/cfg.y @@ -96,6 +96,7 @@ * 2009-01-26 case/switch() support (andrei) * 2009-03-10 added SET_USERPHONE action (Miklos) * 2009-05-04 switched if to rval_expr (andrei) + * 2010-02-17 added blacklist imask (DST_BLST_*_IMASK) support (andrei) */
%{ @@ -398,6 +399,10 @@ extern char *finame; %token DST_BLST_MEM %token DST_BLST_TTL %token DST_BLST_GC_INT +%token DST_BLST_UDP_IMASK +%token DST_BLST_TCP_IMASK +%token DST_BLST_TLS_IMASK +%token DST_BLST_SCTP_IMASK
%token PORT %token STAT @@ -834,14 +839,36 @@ assign_stm: | DNS_CACHE_DEL_NONEXP error { yyerror("boolean value expected"); } | DST_BLST_INIT EQUAL NUMBER { IF_DST_BLACKLIST(dst_blacklist_init=$3); } | DST_BLST_INIT error { yyerror("boolean value expected"); } - | USE_DST_BLST EQUAL NUMBER { IF_DST_BLACKLIST(default_core_cfg.use_dst_blacklist=$3); } + | USE_DST_BLST EQUAL NUMBER { + IF_DST_BLACKLIST(default_core_cfg.use_dst_blacklist=$3); + } | USE_DST_BLST error { yyerror("boolean value expected"); } - | DST_BLST_MEM EQUAL NUMBER { IF_DST_BLACKLIST(default_core_cfg.blst_max_mem=$3); } + | DST_BLST_MEM EQUAL NUMBER { + IF_DST_BLACKLIST(default_core_cfg.blst_max_mem=$3); + } | DST_BLST_MEM error { yyerror("boolean value expected"); } - | DST_BLST_TTL EQUAL NUMBER { IF_DST_BLACKLIST(default_core_cfg.blst_timeout=$3); } + | DST_BLST_TTL EQUAL NUMBER { + IF_DST_BLACKLIST(default_core_cfg.blst_timeout=$3); + } | DST_BLST_TTL error { yyerror("boolean value expected"); } | DST_BLST_GC_INT EQUAL NUMBER { IF_DST_BLACKLIST(blst_timer_interval=$3);} | DST_BLST_GC_INT error { yyerror("boolean value expected"); } + | DST_BLST_UDP_IMASK EQUAL NUMBER { + IF_DST_BLACKLIST(default_core_cfg.blst_udp_imask=$3); + } + | DST_BLST_UDP_IMASK error { yyerror("number(flags) expected"); } + | DST_BLST_TCP_IMASK EQUAL NUMBER { + IF_DST_BLACKLIST(default_core_cfg.blst_tcp_imask=$3); + } + | DST_BLST_TCP_IMASK error { yyerror("number(flags) expected"); } + | DST_BLST_TLS_IMASK EQUAL NUMBER { + IF_DST_BLACKLIST(default_core_cfg.blst_tls_imask=$3); + } + | DST_BLST_TLS_IMASK error { yyerror("number(flags) expected"); } + | DST_BLST_SCTP_IMASK EQUAL NUMBER { + IF_DST_BLACKLIST(default_core_cfg.blst_sctp_imask=$3); + } + | DST_BLST_SCTP_IMASK error { yyerror("number(flags) expected"); } | PORT EQUAL NUMBER { port_no=$3; } | STAT EQUAL STRING { #ifdef STATS