[Catalyst] Serving binary content with Catalyst
    Kentucky Mandeloid Mo. 
    ky at df.ru
       
    Tue Aug 22 10:01:14 CEST 2006
    
    
  
Hi, all
I have some issue with serving binary content through Cat using FastCGI 
engine.
Sometimes in the server logs appears messages like 
....FastCGI sent in stderr: "UTF-16 surrogate 0xd80f 
at /usr/lib/perl/5.8/IO/Handle.pm line 199"....
I think FCGI output stream is set to :utf8 somewhere.
So I just need to binmode it to :raw.
Sounds easy but I unable to find a way how to do that other then patch 
Engine::FastCGI.
Actually what I found is that binmode doesn't help at all even if it placed in 
FastCGI.pm just before *STDOUT->syswrite().
What helped was change from syswrite() to write().
However there are notes in the .pm:
"# FastCGI does not stream data properly if using 'print $handle',
# but a syswrite appears to work properly."
Placing 'no warnings "utf8"' just before the syswrite() call doesn't make 
sence too.
The only way to I found is using write() instead of syswrite().
Is there a proper way to serve binary content with Catalyst?
    
    
More information about the Catalyst
mailing list