No return from "post" on Linux? A bug?

Pierre Sahores psahores at easynet.fr
Fri Jan 31 04:52:00 EST 2003


Sadhunathan Nadesan wrote:
> 
> Greetings Scott,
> 
> Not sure actually if this is a bug report, or I am doing something wrong,
> a library mismatch, or maybe, just a request for a 'how to do it the
> right way'??  In any case I would appreciate any advice.
> 
> Context:
> 
> I have a stack that does a post command to a cgi script on a remote
> server.  The cgi runs some sql queries to standard out  (it has of course
> first set the correct html content type so that apache likes the output).
> 
> Problem:
> 
> On Windows, the sql output is returned as "it" right after the post
> command in the calling stack.
> 
> On Linux, this does not happen.  Nothing is returned.
> 
> More Details:
> 
> I can confirm that the cgi is being called, that the sql is being
> invoked, and I can save the output in a temporary file from this cgi
> (which is an MC script) or even read this file back in to a buffer,
> but then when I do a 'put' of this buffer, it does not return to the
> calling stack on the remote client.
> 
> Again, only if it is a Linux client.  It does return just fine to a
> Windows client.
> 
> The stack itself was created using MC 2.4.3 and the MC interpreter on
> the webhost is 2.4 if that could be the problem, but it seems like the
> post would not work at all to invoke the cgi if it were.
> 
> Anyway, any thoughts?  I can provide more details as needed.  Code samples
> below.
> 
> Gracias,
> Sadhu
> 
>         ----- code sample, the calling stack ----
> 
> on AzzList
> 
>   AzzClear
>   set the listBehavior of field "contents" to true
>   put "action=list&" into azzdata
>   set httpheaders to "Content-type: application/x-www-form-urlencoded" & return
>   # the real name of the host has been replaced to protect the innocent
>   post urlEncode(azzdata) to url ("http://localhost.com/cgi-bin/azz.cgi")
>   put it into sqldata
> 
>   if (the number of characters in sqldata is zero) then
>     answer "Sorry, your data base is empty" & cr
>   else
>     put "In the contents field below is a list of all the card titles" into field "title"
>     put sqldata into field "contents"
>   end if
> 
> end AzzList
> 
>         ----- code sample, the cgi stack ----
> 
> #!/usr/local/bin/mc
> on startup

#########################################################

>   #put "Content-Type: text/plain" & cr & cr ## unneeded
>   #put emtpy into formdata ## syntax error

#########################################################

    put empty into formdata ## correction

>   if ($REQUEST_METHOD = "POST") then
>     put empty into buffer
>     repeat until (length(buffer) >= $CONTENT_LENGTH)
>        read from stdin until empty
>        put it after buffer
>     end repeat
>   else
>     read from stdin until empty
>     put it into buffer
>   end if
>   put urlDecode(buffer) into formdata
> 
>   split formdata by "&" and "="
>   put keys(formdata) into keywords
> 
>   switch formdata["action"]
>     case list
>       put "select title from azz order by title;" into the_query
>       put the_query into url "file:/tmp/azzlist.sql"
>       put "psql azz -qt -f /tmp/azzlist.sql" into command_string
>       break
>   end switch
> 
>   set shellCommand to "/bin/sh"
>   put shell(command_string)
> 
> end startup
> _______________________________________________
> metacard mailing list
> metacard at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/metacard

Sadhu,

I don't know if that's will be ok now but i didn't have the problem for
my own (mc 2.32 linuxppc).

-- 
Best Regards, Pierre Sahores

Inspection académique de Seine-Saint-Denis.
Applications et bases de données WEB et VPN
Qualifier et produire l'avantage compétitif



More information about the metacard mailing list