Skip Menu |

This queue is for tickets about the IO CPAN distribution.

Report information
The Basics
Id: 91183
Status: resolved
Priority: 0/
Queue: IO

People
Owner: Nobody in particular
Requestors: yaberger [...] ca.ibm.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: IO::Socket getsockopt on AIX
Date: Wed, 4 Dec 2013 15:02:02 -0500
To: bug-IO [...] rt.cpan.org
From: yaberger [...] ca.ibm.com
Hi, I've compiled Perl 5.18.1 which is bundled with IO::Socket 1.36 on AIX 7.1 TL2 SP3. The following configure command has been used to compile Perl: /usr/bin/sh ./Configure -desr -Dprefix=/usr/local/perl-5.18.1 -Uman1direxp -Uman3direxp -Doptimize=-O2 -Duselongdoubles -Dusethreads After that, I've tried to install a module named Mojolicious at version 4.58 in which a test fail in t/mojo/daemon.t The test is opening a socket without SO_REUSEPORT and validate with a getsockopt that it's not set. It's expecting a false boolean but doesn't get one. Our investigation brought us into IO/Socket.pm in subroutine getsockopt() on this condition: $r = unpack("i", $r) if(defined $r && length($r) == $intsize); $r is defined andhas a length of 256 $intsize value is 4 so it's not unpacked and return something that is not a false boolean. If I force unpack("i", $r), the value returned is 0 and the test pass. Question: How can we explain that the length of $r is not $intsize? Would this require a change in IO::Socket Perl module or in my Perl compilation procedure or somewhere else? In reference: https://groups.google.com/forum/#!topic/mojolicious/T34XZX72LaA Best regards, Yannick Bergeron 450 534-7711 yaberger@ca.ibm.com Advisory IT Specialist
Ticket migrated to github as https://github.com/toddr/IO/issues/27