[sr-dev] git:andrei/raw_sock: raw sockets: ttl can be set from the config file

Andrei Pelinescu-Onciul andrei at iptel.org
Tue Aug 10 11:19:38 CEST 2010


Module: sip-router
Branch: andrei/raw_sock
Commit: 2556cd84fa12b25e9545535db9c766bf9cd3f354
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=2556cd84fa12b25e9545535db9c766bf9cd3f354

Author: Andrei Pelinescu-Onciul <andrei at iptel.org>
Committer: Andrei Pelinescu-Onciul <andrei at iptel.org>
Date:   Tue Aug 10 11:15:06 2010 +0200

raw sockets: ttl can be set from the config file

The ttl used for raw sockets can be set from the config file,
using udp4_raw_ttl.
 -1 can be used for auto-detection.

---

 cfg.lex |    2 ++
 cfg.y   |    5 +++++
 2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/cfg.lex b/cfg.lex
index de88891..6829724 100644
--- a/cfg.lex
+++ b/cfg.lex
@@ -215,6 +215,7 @@ UDP_MTU		"udp_mtu"
 UDP_MTU_TRY_PROTO	"udp_mtu_try_proto"
 UDP4_RAW		"udp4_raw"
 UDP4_RAW_MTU	"udp4_raw_mtu"
+UDP4_RAW_TTL	"udp4_raw_ttl"
 SETFLAG		setflag
 RESETFLAG	resetflag
 ISFLAGSET	isflagset
@@ -611,6 +612,7 @@ SUBST       subst
 									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>{UDP4_RAW_TTL}	{ count(); yylval.strval=yytext; return UDP4_RAW_TTL; }
 <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 3c52e69..78b0102 100644
--- a/cfg.y
+++ b/cfg.y
@@ -331,6 +331,7 @@ extern char *finame;
 %token UDP_MTU_TRY_PROTO
 %token UDP4_RAW
 %token UDP4_RAW_MTU
+%token UDP4_RAW_TTL
 %token IF
 %token ELSE
 %token SET_ADV_ADDRESS
@@ -1593,6 +1594,10 @@ assign_stm:
 		IF_RAW_SOCKS(default_core_cfg.udp4_raw_mtu=$3);
 	}
 	| UDP4_RAW_MTU EQUAL error { yyerror("number expected"); }
+	| UDP4_RAW_TTL EQUAL NUMBER {
+		IF_RAW_SOCKS(default_core_cfg.udp4_raw_ttl=$3);
+	}
+	| UDP4_RAW_TTL EQUAL error { yyerror("number expected"); }
 	| cfg_var
 	| error EQUAL { yyerror("unknown config variable"); }
 	;




More information about the sr-dev mailing list