File novell-ipsec-tools_plugins-support-racoon.conf.patch of Package novell-ipsec-tools
Index: ipsec-tools-0.7.1/src/racoon/racoon.conf.5
===================================================================
--- ipsec-tools-0.7.1.orig/src/racoon/racoon.conf.5
+++ ipsec-tools-0.7.1/src/racoon/racoon.conf.5
@@ -241,6 +241,22 @@ It must be defined at each
.Ic remote
directive.
.\"
+.Ss Plugins Support
+.Bl -tag -width Ds -compact
+.It Ic plugin { Ar statements Ic }
+This section specifies plugins' support for racoon.
+.Pp
+.Bl -tag -width Ds -compact
+.It Ic plugins_support Ar (on | off) ;
+Enable plugins' support for racoon, the default value is off.
+.It Ic plugins_load Ar (file | path) ;
+Specifies a share object(.so) file or a path where all share
+object files will be searched and loaded when
+.Xr racoon 8
+start up.
+.El
+.El
+.\"
.Ss Timer Specification
.Bl -tag -width Ds -compact
.It Ic timer { Ar statements Ic }
Index: ipsec-tools-0.7.1/src/racoon/cftoken.l
===================================================================
--- ipsec-tools-0.7.1.orig/src/racoon/cftoken.l
+++ ipsec-tools-0.7.1/src/racoon/cftoken.l
@@ -138,6 +138,7 @@ hexstring 0x{hexdigit}+
%s S_RMT S_RMTS S_RMTP
%s S_SA
%s S_GSSENC
+%s S_PLUGIN
%%
%{
@@ -383,6 +384,13 @@ hexstring 0x{hexdigit}+
return(GSS_ID_ENCTYPE); }
<S_GSSENC>{semi} { BEGIN S_INI; YYDB; return(EOS); }
+ /* plugin */
+<S_INI>plugin { BEGIN S_PLUGIN; YYDB; return(PLUGIN); }
+<S_PLUGIN>{bcl} { return(BOC); }
+<S_PLUGIN>plugins_support { YYD; return(PLUGIN_SUPPORT); }
+<S_PLUGIN>load { YYD; return(PLUGIN_LOAD); }
+<S_PLUGIN>{ecl} { BEGIN S_INI; return(EOC); }
+
/* parameter */
on { YYD; yylval.num = TRUE; return(SWITCH); }
off { YYD; yylval.num = FALSE; return(SWITCH); }
Index: ipsec-tools-0.7.1/src/racoon/cfparse.y
===================================================================
--- ipsec-tools-0.7.1.orig/src/racoon/cfparse.y
+++ ipsec-tools-0.7.1/src/racoon/cfparse.y
@@ -235,6 +235,8 @@ static int fix_lifebyte __P((u_long));
%token SCRIPT PHASE1_UP PHASE1_DOWN
+%token PLUGIN PLUGIN_SUPPORT PLUGIN_LOAD
+
%token NUMBER SWITCH BOOLEAN
%token HEXSTRING QUOTEDSTRING ADDRSTRING ADDRRANGE
%token UNITTYPE_BYTE UNITTYPE_KBYTES UNITTYPE_MBYTES UNITTYPE_TBYTES
@@ -275,6 +277,7 @@ statement
| timer_statement
| sainfo_statement
| remote_statement
+ | plugin_statement
| special_statement
;
@@ -1120,6 +1123,33 @@ timer_stmt
;
/* sainfo */
+plugin_statement
+ : PLUGIN BOC plugin_stmts EOC
+ ;
+plugin_stmts
+ : /* nothing */
+ | plugin_stmts plugin_stmt
+ ;
+plugin_stmt
+ : PLUGIN_SUPPORT SWITCH EOS
+ {
+#ifdef PLUGINS_SUPPORT
+ lcconf->plugins_support = $2;
+#else
+ yywarn("plugins support not compiled in");
+#endif
+ }
+ | PLUGIN_LOAD QUOTEDSTRING EOS
+ {
+#ifdef PLUGINS_SUPPORT
+ lcconf->plugins_path = $2->v;
+#else
+ yywarn("plugins support not compiled in");
+#endif
+ }
+ ;
+
+ /* sainfo */
sainfo_statement
: SAINFO
{