Re: I-D ACTION:draft-daboo-sieve-include-03.txt (fwd)

Cyrus Daboo <daboo@isamet.com> Fri, 26 August 2005 14:04 UTC

Received: from above.proper.com (localhost.vpnc.org [127.0.0.1]) by above.proper.com (8.12.11/8.12.9) with ESMTP id j7QE4Upx006142; Fri, 26 Aug 2005 07:04:30 -0700 (PDT) (envelope-from owner-ietf-mta-filters@mail.imc.org)
Received: (from majordom@localhost) by above.proper.com (8.12.11/8.12.9/Submit) id j7QE4UnQ006140; Fri, 26 Aug 2005 07:04:30 -0700 (PDT)
X-Authentication-Warning: above.proper.com: majordom set sender to owner-ietf-mta-filters@mail.imc.org using -f
Received: from darius.cyrusoft.com (darius.cyrusoft.com [63.163.82.2]) by above.proper.com (8.12.11/8.12.9) with ESMTP id j7QE4ThD006130 for <ietf-mta-filters@imc.org>; Fri, 26 Aug 2005 07:04:30 -0700 (PDT) (envelope-from daboo@isamet.com)
Received: from ninevah.cyrusoft.com (ninevah.cyrusoft.com [63.163.82.9]) (authenticated bits=0) by darius.cyrusoft.com (8.12.9/8.12.9) with ESMTP id j7QE0YuG023187 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 26 Aug 2005 10:00:34 -0400
Date: Fri, 26 Aug 2005 10:04:22 -0400
From: Cyrus Daboo <daboo@isamet.com>
To: Nigel Swinson <Nigel.Swinson@rockliffe.com>, Kjetil Torgrim Homme <kjetilho@ifi.uio.no>, Aaron Stone <aaron@serendipity.cx>
cc: Sieve Mailing List <ietf-mta-filters@imc.org>
Subject: Re: I-D ACTION:draft-daboo-sieve-include-03.txt (fwd)
Message-ID: <5B26DF3886565BACC51CD28F@ninevah.cyrusoft.com>
In-Reply-To: <005c01c5aa44$49f18430$cf0ac050@nigelhome>
References: <twig.1125014327.8763@serendipity.palo-alto.ca.us> , <twig.1125014327.8763@serendipity.palo-alto.ca.us> <twig.1125020754.94965@serendipity.palo-alto.ca.us> <1125054534.15136.180.camel@chico.njus.no> <005c01c5aa44$49f18430$cf0ac050@nigelhome>
X-Mailer: Mulberry/4.0.3 (Mac OS X)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
X-Spam-Status: No, hits=0.0 tests=none
Sender: owner-ietf-mta-filters@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-mta-filters/mail-archive/>
List-ID: <ietf-mta-filters.imc.org>
List-Unsubscribe: <mailto:ietf-mta-filters-request@imc.org?body=unsubscribe>

Hi Nigel,

--On August 26, 2005 2:44:29 PM +0100 Nigel Swinson 
<Nigel.Swinson@rockliffe.com> wrote:

>> I don't think we need ":global", and it would be confusing to use.
>
> I consider PHP a very mature scripting language and I consider thier
> scoping rules very well thought out most likely very carefully discussed.
> After using the language for several years I haven't really found fault
> with them.  It make me think it's worth copying what they have done.  And
> thus:
>
> I think Aaron and I are suggesting:
>
> Set file scope variable
>     set "var" "Hello Kitty";
>
> Set global scope variable, where global affects all scripts that come
> into existance with the include spec     set :global "var" "Hello Kitty";
>
> Set local scope variable, where local affects the current and nested
> command block (filescope if not currently in a control block.)  (would
> doubt would ever be used)     set :local "var" "Hello Kitty";
>
> And Kjetil seems to disagree.  Anybody else out there have any opinions?

I do think the security concerns that Nigel brought up are valid. As such 
there does need to be a way for script authors to prevent their variables 
from being used either in an included script or by the scripts that include 
it. A simple solution to that would be a ":private" and ":public" scoping 
where ":private" means file scope only. The default is ":public" scope.

One thing with scoping that we also have to be concerned with is handling 
errors. What if a script attempts to use a ":private" variable from another 
script? Should that be a run-time or activation time error? Or should sieve 
do something sensible, e.g. make the new variable ":private" too? It would 
probably be better to have errors at activation time. In fact I would also 
suggest having warnings at activation time to warn of variables from one 
file being used in another, if the user wants to know about it.

-- 
Cyrus Daboo