> * From: Scott Raney > * Subject: Short reads in CGI applications: A solution > * Date: Thu, 24 Oct 2002 20:04:55 -0700 > > We've recently received several reports of short reads from stdin in > CGI applications but have never been able to reproduce or understand > this until our own (recently upgraded) server started to show the > problem. Not sure if it's a newer version of the HTTP server software > or faster hardware or what, but sometimes "read from stdin until > empty" doesn't get all the data it should. Sometimes it doesn't get > anything at all. > > Now "read .. until empty" was never a good idea, merely a quick and > dirty way to read whatever should be incoming in the first bufferfull > from the HTTP server. Unfortunately the easy workaround, "read from > stdin for $CONTENT_LENGTH" also doesn't work if the process on the > other end of stdin doesn't keep up. So what you have to do instead is > something like: > put empty into buffer # this is where your data will end up > repeat until length(buffer) >= $CONTENT_LENGTH > read from stdin until empty > put it after buffer > end repeat > > We'll look into supporting a simpler way to do this for 2.5 (not sure > whether to fix it so "read .. for $CONTENT_LENGTH" works, or to > support "read .. until eof" on pipes), but in the mean time something > like the above should solve the problem. > Regards, > Scott > > ******************************************************** > Scott Raney [EMAIL PROTECTED] http://www.metacard.com > MetaCard: You know, there's an easier way to do that... >
Allo Scott, It works !, as fine, and even best in pure cgi-mode, as the php-based workaround script i used until today because i never got the secure and expected results in using the below kind of code : > | #!/usr/local/bin/mc > | on start up > | if $REQUEST_METHOD is "POST" then > | read from stdin until empty > | put it into buffer > | put "Content-Type: text/plain" & cr > | put "Content-Length:" && the length of buffer & cr & cr > | put buffer > | end startup I was just searching for an mc way to build a cgi-script based front-end to postgresql, to explain in the simplest way (without needing to set up an mc web apps deamon) on how to to build and send SQL statements/queries to pg, directly from within mc. Thanks, thanks, thanks : the onest problem i had in using mc for years has gone away :-))) -- 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 _______________________________________________ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard