how do I shell-out or call other (commercial) applications
in a Rebol cgi?

possible solutions that I know of are:

* if you have source to the app, you can write a file or port
  based interface to it.
  - commercial apps dont come with (much) source
  - embarrasing if that 'other' app is also Rebol
  and must be started with new command-line arguments.

* write a separate 'glue' app that listens on a port
  or a named pipe for things to do.
  - may require some interlock to tell when cmd is done.
  + advantage is that a single app can run continuously
    handling all cgi-shellout requests this way.
  - NT has weak named pipes, stronger 'messaging'.
  + it may be an advantage to not have to wait for cmd to finish.
    with named pipes, sync point can be later or not at all.
  + glue app can guarantee commands are issued securely
    and always from some point in tree under ID you expect.
  + glue app can be (on unixes)
       rebol parse_from_pipe.r |tee shelloutlog | grep '^eval ' | sh - 
    so that full power of rebol for parsing pipe is available
    but shellouts and logs can happen too. 
  + glue app can be run chroot()ed to some corner of the fs
    where it cannot be used to subvert system. parse_from_pipe
    can filter/authenticate senders instead of counting on
    sh to do it. sets limits on what rogue or "open" cgi may do.


other/better ways?






{-----}
[EMAIL PROTECTED]

Reply via email to