> -----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