Re: P work in new charter

Markus Hofmann <[email protected]>
Newsgroups gmane.ietf.opes
Message-ID <[email protected]>
Alex Rousskov wrote:

 > Let's call the service-configuration language "S". Suppose we have
 > service "foo", with three parameters: "a", "b", and "z".

What about something like

     // P code starts here
     if (message meets criteria) then {
         service := services.find("foo");
	call service(message.body, 1, 2, message.size);
     }

assuming the service is defined as a function with four input 
parameters, e.g foo(body, a, b, z).

> You do not foresee something like the "encapsulated" code below, do
> you?
> 
>     // P code starts is here
>     if (message meets criteria) then {
>         service := services.find("foo"); // still P code
>         service.configure(<![SCODE[>     // P code ends here
>             a = 1;               // S code to be passed to the service
>             b = 2;               // S code
>             z = message.size;    // S code accessing P objects??
> 	<]SCODE]>);                      // P code resumes here
> 	call service(message.body);      // P code
>     }

The approach with "encapsulated" code would allow me to program the 
entire service in "P", i.e. using "encapsulated" code to write a virus 
scanner or anything I want, and then just call a service that does 
nothing else then executing the "encapsulated" code fragment - not a 
good idea, IMHO.

> Or is there a better way? Please give an example of how to configure a
> dynamically selected service in S without tainting P.

Maybe we were talking about diferent things... When you talk about 
"customizing a service", do you mean "passing dynamic input parameters 
to a service"? If yes, I think we're aligned - I would assume that 
this is possible (see my example above). If it also includes passing 
code fragments to the service for execution, I start feeling 
uncomfortable.

> Here is another example calling (and configuring) an HTTP-unaware
> content scanning service that needs to know the content MIME type:
> 
>   if (http.message.mime == "application/exe") then
>     call services.scan("Windows binary", http.message.body);
>   else
>   if (http.message.mime == "text/html") then
>     call services.scan("HTML page", http.message.body);
>
> How can the above selection/configuration be done without tainting P?

That makes sense to me and seems to be pretty much in line with the 
example I gave above. I would consider this ok - this is just calinbg 
a service with the correct parameters.

-Markus
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.