Alexander 'Leo' Bergolth
2014-Oct-20 09:48 UTC
Sieve: carry global variables from sieve_before to user sieve scripts
Hi! Is there a way to initialize global variables with default values in sieve_before scripts that can be used in the sieve_default script or in user scripts? I've tried the following code but this doesn't work.. before.d/10-set-defaults.sieve: -------------------- 8< -------------------- require ["variables", "include"]; require "vnd.dovecot.debug"; set "global.S_TESTVAR leo"; debug_log "LEO SIEVE: in before.d/10-set-defaults, S_TESTVAR: ${global.S_TESTVAR}"; -------------------- 8< -------------------- default.sieve: -------------------- 8< -------------------- require ["variables", "include"]; require "vnd.dovecot.debug"; global "S_TESTVAR"; debug_log "LEO SIEVE: in default.sieve: S_TESTVAR: ${global.S_TESTVAR}, ${S_TESTVAR}"; -------------------- 8< -------------------- Is there any other way to set up defaults in a global sieve script? Cheers, --leo -- e-mail ::: Leo.Bergolth (at) wu.ac.at fax ::: +43-1-31336-906050 location ::: IT-Services | Vienna University of Economics | Austria
Alexander 'Leo' Bergolth
2014-Oct-25 13:50 UTC
Sieve: carry global variables from sieve_before to user sieve scripts
On 20.10.2014 11:48, Alexander 'Leo' Bergolth wrote:> Is there a way to initialize global variables with default values in > sieve_before scripts that can be used in the sieve_default script or in > user scripts?OK. I guess that's currently not possible. I had a quick look in the code, the global variable namespace seems to be copied from the parent script during execution of the include statement. (In ext_include_generate_include() which calls ext_include_create_ast_context().) So maybe it is possible to take another approach: Instead of executing sieve_before scripts and sieve_default side by side, maybe it is feasible to set the "before-script" as sieve_default and include the default personal user script from there if it exists? That way global variable inheritance should work, shouldn't it? Did anyone try this approach? Any caveats? Any security implications? Cheers, --leo> I've tried the following code but this doesn't work.. > > before.d/10-set-defaults.sieve: > -------------------- 8< -------------------- > require ["variables", "include"]; > require "vnd.dovecot.debug"; > set "global.S_TESTVAR leo"; > debug_log "LEO SIEVE: in before.d/10-set-defaults, S_TESTVAR: > ${global.S_TESTVAR}"; > -------------------- 8< -------------------- > > default.sieve: > -------------------- 8< -------------------- > require ["variables", "include"]; > require "vnd.dovecot.debug"; > > global "S_TESTVAR"; > debug_log "LEO SIEVE: in default.sieve: S_TESTVAR: ${global.S_TESTVAR}, > ${S_TESTVAR}"; > -------------------- 8< -------------------- > > Is there any other way to set up defaults in a global sieve script?-- e-mail ::: Leo.Bergolth (at) wu.ac.at fax ::: +43-1-31336-906050 location ::: IT-Services | Vienna University of Economics | Austria