<HTML><FONT FACE=arial,helvetica><FONT COLOR="#000000" FACE="Geneva" FAMILY="SANSSERIF" SIZE="2" STYLE="BACKGROUND-COLOR: #FFFFFF">Hi guys,<BR>
<BR>
With all of this CGI talk lately, I cooked something up.<BR>
I've been working with a server program based on the ol' mc httpd stack, since I make heavy use of Valentina. However, I've always wanted to break it down into separate cgi scripts. Among other things, that gives me multiple processes more easily.<BR>
<BR>
So my question... is there *any* way to access externals (including the new Mach-o ones with 2.4.3) from a CGI script?<BR>
<BR>
The best I can come up with is running a separate stack which houses the external, and communicating via sockets.<BR>
<BR>
Any ideas?<BR>
<BR>
In case anyone finds this script useful, this is what I'm using to talk to my mc httpd-inspired stack:<BR>
<BR>
#!mc<BR>
on startup<BR>
&nbsp;  open socket to "127.0.0.1:8080"<BR>
<BR>
&nbsp;  put $REQUEST_METHOD&amp;&amp;$REQUEST_URI&amp;&amp;"CGI"&amp;crLF into theRequest<BR>
&nbsp;  if ($HTTP_COOKIE is not empty) then<BR>
&nbsp;&nbsp;&nbsp;  put "Cookie: "&amp;$HTTP_COOKIE&amp;crLF after theRequest<BR>
&nbsp;  end if<BR>
&nbsp;  if ($REMOTE_USER is not empty) then<BR>
&nbsp;&nbsp;&nbsp;  put "Remote-User:"&amp;&amp;$REMOTE_USER&amp;crLF after theRequest<BR>
&nbsp;  end if<BR>
<BR>
&nbsp;  if ($REQUEST_METHOD = "PUT") then<BR>
&nbsp;&nbsp;&nbsp;  read from stdin until empty<BR>
&nbsp;&nbsp;&nbsp;  put crLF&amp;it after theRequest<BR>
&nbsp;  end if<BR>
<BR>
&nbsp;  write theRequest&amp;crLF&amp;crLF to socket "127.0.0.1:8080"<BR>
<BR>
&nbsp;  read from socket "127.0.0.1:8080" until (crLF&amp;crLF)<BR>
&nbsp;  put it into theHeaders<BR>
&nbsp;  put lineOffset(theHeaders, "Content-Length:") into theLine<BR>
&nbsp;  if (theLine &gt; 0) then<BR>
&nbsp;&nbsp;&nbsp;  set the itemDelimiter to ":"<BR>
&nbsp;&nbsp;&nbsp;  put item 2 of line theLine of theHeaders into theLength<BR>
&nbsp;&nbsp;&nbsp;  read from socket "127.0.0.1:8080" for theLength<BR>
&nbsp;&nbsp;&nbsp;  put it into theBody<BR>
&nbsp;  else<BR>
&nbsp;&nbsp;&nbsp;  read from socket "127.0.0.1:8080" until empty<BR>
&nbsp;&nbsp;&nbsp;  put it into theBody<BR>
&nbsp;  end if<BR>
<BR>
&nbsp;  ## delete the status line<BR>
&nbsp;  delete line 1 of theHeaders<BR>
&nbsp;  put (theHeaders&amp;crLF&amp;crLF&amp;theBody)<BR>
end startup<BR>
<BR>
Best Regards,<BR>
Brian</FONT><FONT COLOR="#000000" FACE="Geneva" FAMILY="SANSSERIF" SIZE="2" STYLE="BACKGROUND-COLOR: #FFFFFF"></FONT></HTML>