Rocco,

I apologize for my ignorance in advanced. I've started re-reading "Network
Programming with Perl". -Which I'd read once long ago, never used, and
consequently have completely forgotten.

I noticed your post to p5p on this issue back in August 2001:
  http://archive.develooper.com/perl5-porters@;perl.org/msg62779.html

Where you use ioctl to flip the socket to non-blocking mode (as stolen from
POE::Wheel::SocketFactory).

I also noticed an interesting article:
  INFO: Socket Overlapped I/O Versus Blocking/Non-blocking Mode
  http://support.microsoft.com/default.aspx?scid=kb;en-us;Q181611

Where it says:
> Please note that once a socket is created, there is no way
> to change the socket overlapped attribute. However, you can
> call the setsockopt API with SO_OPENTYPE option on any socket
> handles including an INVALID_SOCKET to change the overlapped
> attributes for all successive socket calls in the same thread.
> The default SO_OPENTYPE option value is 0, which sets the
> overlapped attribute. All non-zero option values make the
> socket synchronous and make it so that you cannot use a
> completion function

So I'm wondering if there's an exposed mechanism in perl to set this
attribute similar to how you used ioctl to set the FIONBIO attribute? I'm
not sure what "all successive socket calls" means... but I'm curious if
having set this attribute, followed by the FIONBIO call to ioctl... you
might be able to get that non-blocking connect?

Its probably just one of those "pie in the sky" ideas which ignorance allows
one to think is possible...

--
Garrett Goebel
IS Development Specialist

ScriptPro                   Direct: 913.403.5261
5828 Reeds Road               Main: 913.384.1008
Mission, KS 66202              Fax: 913.384.2180
www.scriptpro.com          [EMAIL PROTECTED]

Reply via email to