Module: sip-router Branch: andrei/raw_sock Commit: e92fe8b41e30abc92b5a8e2b4baff0d4aab95e61 URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=e92fe8b41e30abc92b5a8e2b4baff0d4aab95e61
Author: Andrei Pelinescu-Onciul <[email protected]> Committer: Andrei Pelinescu-Onciul <[email protected]> Date: Tue Jun 15 16:46:04 2010 +0200 raw sockets: config file support Raw socket usage for udp ipv4 send, can now be turned on/off/auto from the config file, via udp4_raw. The mtu used can be set via udp4_raw_mtu. --- cfg.lex | 4 ++++ cfg.y | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 0 deletions(-) diff --git a/cfg.lex b/cfg.lex index e4b5486..de88891 100644 --- a/cfg.lex +++ b/cfg.lex @@ -213,6 +213,8 @@ ADD_LOCAL_RPORT "add_local_rport" FORCE_TCP_ALIAS "force_tcp_alias"|"add_tcp_alias" UDP_MTU "udp_mtu" UDP_MTU_TRY_PROTO "udp_mtu_try_proto" +UDP4_RAW "udp4_raw" +UDP4_RAW_MTU "udp4_raw_mtu" SETFLAG setflag RESETFLAG resetflag ISFLAGSET isflagset @@ -607,6 +609,8 @@ SUBST subst <INITIAL>{UDP_MTU} { count(); yylval.strval=yytext; return UDP_MTU; } <INITIAL>{UDP_MTU_TRY_PROTO} { count(); yylval.strval=yytext; return UDP_MTU_TRY_PROTO; } +<INITIAL>{UDP4_RAW} { count(); yylval.strval=yytext; return UDP4_RAW; } +<INITIAL>{UDP4_RAW_MTU} { count(); yylval.strval=yytext; return UDP4_RAW_MTU; } <INITIAL>{IF} { count(); yylval.strval=yytext; return IF; } <INITIAL>{ELSE} { count(); yylval.strval=yytext; return ELSE; } diff --git a/cfg.y b/cfg.y index 5052078..3c52e69 100644 --- a/cfg.y +++ b/cfg.y @@ -200,6 +200,12 @@ #define IF_SCTP(x) warn("sctp support not compiled in") #endif +#ifdef USE_RAW_SOCKS + #define IF_RAW_SOCKS(x) x +#else + #define IF_RAW_SOCKS(x) warn("raw socket support not compiled in") +#endif + extern int yylex(); /* safer then using yytext which can be array or pointer */ @@ -323,6 +329,8 @@ extern char *finame; %token FORCE_TCP_ALIAS %token UDP_MTU %token UDP_MTU_TRY_PROTO +%token UDP4_RAW +%token UDP4_RAW_MTU %token IF %token ELSE %token SET_ADV_ADDRESS @@ -1579,6 +1587,12 @@ assign_stm: { default_core_cfg.udp_mtu_try_proto=$3; fix_global_req_flags(0, 0); } | UDP_MTU_TRY_PROTO EQUAL error { yyerror("TCP, TLS, SCTP or UDP expected"); } + | UDP4_RAW EQUAL intno { IF_RAW_SOCKS(default_core_cfg.udp4_raw=$3); } + | UDP4_RAW EQUAL error { yyerror("number expected"); } + | UDP4_RAW_MTU EQUAL NUMBER { + IF_RAW_SOCKS(default_core_cfg.udp4_raw_mtu=$3); + } + | UDP4_RAW_MTU EQUAL error { yyerror("number expected"); } | cfg_var | error EQUAL { yyerror("unknown config variable"); } ; _______________________________________________ sr-dev mailing list [email protected] http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
