Re: Re: proc_open, fwrite, 16384 bytes magic

From: Date: Wed, 02 Nov 2005 21:48:44 +0000
Subject: Re: Re: proc_open, fwrite, 16384 bytes magic
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-225020@lists.php.net to get a copy of this message
On Wed, 02 Nov 2005 10:38:15 +0100, max wrote: >> In this case are you sure that the file is being sent via proc_open()? >> can you provide a simplified script that does this? > > Sure, here's a test script, the output from it, and a few words on the > email I receive: > <?php > $descriptorspec = array( > 0 => array("pipe", "r"), > 1 => array("pipe", "w"), > 2 => array("file", "/tmp/error-output.txt", "a") > ); > $text = ""; > for ($i=0; $i<10240; $i++) $text.="1"; $text.="END\n"; > $doccmd = "/usr/bin/qmail-inject"; > $res = proc_open ($doccmd, $descriptorspec, $pipes); > fwrite ($pipes[0],"TO: somemailaddress@some.host\n\n"); > echo fwrite ($pipes[0], $text)."\n"; > echo fwrite ($pipes[0], $text)."\n"; > fclose ($pipes[0]); > ?> > > The output is: > 10244 > 6109 > > Now, that's not counting the first TO: plus two \n's. Altogether it > always > sums up to 16384 bytes. > > In the email I receive, it honestly shows exactly the amount of data > fwrite() claimed to have written, and not a symbol more. My guess is that qmail-inject has a limitation on the line length that it can use. A couple tests I can suggest: 1. try to seperate the string with some line endings so the line sent isnt over 16kb. 2. try to proc_open a transparent application that doesn't do any sort sort of parsing. like '/bin/cat' and see what the output is. HTH, Curt. -- http://news.zirzow.dyndns.org/

« previous php.general (#225020) next »