> -----Original Message-----
> From: Andy Levine [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, June 01, 2004 4:26 PM
> To: [EMAIL PROTECTED]
> Subject: PoCoCl::UserAgent, Protocol file://, and Solaris
> 
> We are having a heck of a time getting PoCoCl::UserAgent to function
> properly with the "file" protocol under Solaris. Under Linux and Cygwin
> our
> apps work fine, under Solaris all file:// requests end with a "500
> Connection reset" error.
> < snip >
> Analysis of the debug logs from POE and LWP lead us to suspect the
> POE::Kernel select() loop under Solaris is mistakenly setting the
> "exception
> bit" on any call to select() for all reads and writes. This does NOT
> appear
> to be the case for Linux:
> 
After further analysis, I have confirmed our suspicions about select() under
Solaris. The "exception" or "expedite" bit will ALWAYS return true for a
FILEHANDLE associated with a regular file. According to "man -s 3c select"
under Solaris: 

----snip---
"File descriptors associated with regular files always select true for
ready  to  read, ready to write, and error conditions."
--- end snip ---

So it appears the "trick" to solving this problem with UserAgent would be to
not call "select_expedite" in _add_in_socket() and _add_out_socket() for
those URIs that are file based when running under Solaris.  Any ideas how to
accomplish this in a generic, friendly way?

Thanks
Andy Levine

Reply via email to