About win32 port of perlbal

Brad Fitzpatrick brad at danga.com
Thu Aug 3 21:14:06 UTC 2006

Look at POE's SocketFactory and how they setup non-blocking on Win32.
Basically IO::Handle::blocking doesn't seem to work, and you have to do
some fancy ioctls.

Feel free to put that in Danga::Socket, some util function to turn on/off
that's more portable?

On Wed, 2 Aug 2006, Martin Atkins wrote:

> Martin Atkins wrote:
> >
> > I'm kinda hoping that the IO::Poll module, which is present in my
> > ActiveState Perl install, will do the trick without sucking. I shall
> > investigate further tomorrow, since I don't have time today.
> >
> As it turns out, Danga::Socket worked just fine once I upgraded to a
> more recent version of ActiveState Perl and installed Sys::Syscall. The
> latter correctly picks up that epoll isn't available.
> However, I've encountered a small issue. It seems that IO::Socket::INET
> won't create a non-blocking listen socket on my Windows XP system here.
> It returns the error "no such file or directory". This is true whether
> Blocking => 1 is specified in the constructor args or run afterwards
> using $sock->blocking(0);.
> Anyone have any clue why?
> DJabberd (which also uses Danga::Socket) will now run on Windows with
> blocking listeners, but Perlbal doesn't like having blocking listeners
> and gets stuck when a connection is recieved.
> -------
> Perlbal also depends on Sys::Syslog and BSD::Resource which aren't
> available on Windows, but I've now made them optional (not committed
> yet) with the caveat that without them you get no logging in daemon mode
> and the performance-related management commands don't work.

More information about the perlbal mailing list