XS on Win32 hassle
I’m working on Apple’s Rendezvous Windows SDK port to Perl on win32 using XS. Currently, DNSRegisterService seems to work, but it has a problem with select() which works in usual C program, but breaks in XS module.
Here’s a sample C program rendezvous.c that works. It produces an output like:> C:> rendezvous.exe fd: 1992 got result: 1 Got a reply for Astoria._daap._tcp.local.: Name now registered and active While simply converted XS module Rendezvous.zip that is broken. It produces:> > perl -Mblib -MRendezvous -w -e “Rendezvous::main()” fd: 1960 got result: -1 select() returned -1 errno 0 No error the difference is select() that returns -1 on XS version… I’m afraid it’s due to something around win32 libraries like winsock. (I’ve built both of them using cl.exe which comes from Microsoft .NET Framework SDK, and Microsoft Platform SDK header files)
If you are familiar with Win32 things and take your time to look into the code, it’ll be greatly appreciated.