On Saturday, June 27, 2015 08:44:53 AM Thomas Eckardt wrote: > > - $! shows the error reported by the OS to Perl - my output on linux is: > > linux:~ # perl ipv6_test.pl > error: Address already in use > SOCKET6 = IO::Socket::INET6=GLOB(0x82e6b54) > SOCKET4 = > > Now - where is the BUG in Perl or a Perl module , if the OS says 'I can't > do what you want' - "Address already in use"
Again that is that perl module in how its trying to bring up port 6666 on 0.0.0.0 and [::]. It is how that module is coded that it gets that error. If your implying that the Linux kernel cannot listen on both IPv4 and IPv6 wildcards, and the Linux kernel is preventing this you are very wrong. For example, the following shows numerous services listening on both IPv4 and IPv6. You can also see IPv6 addresses in use by ASSP, because the perl module does work if you use IPv6 address just not wildcards. Which again shows the error in the module. Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1636/sshd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 24579/perl tcp 0 0 0.0.0.0:2525 0.0.0.0:* LISTEN 24579/perl tcp 0 0 0.0.0.0:125 0.0.0.0:* LISTEN 23335/tcpserver tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 1431/dovecot tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 1431/dovecot tcp 11 0 0.0.0.0:587 0.0.0.0:* LISTEN 24579/perl tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1486/rpcbind tcp 0 0 0.0.0.0:655 0.0.0.0:* LISTEN 1113/tincd tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 24579/perl tcp6 0 0 :::22 :::* LISTEN 1636/sshd tcp6 0 0 2600:3c02::f03c:91ff:25 :::* LISTEN 24579/perl tcp6 0 0 fdxx:xxxx:xxxx::51:25 :::* LISTEN 24579/perl tcp6 0 0 2600:3c02::f03c:91:2525 :::* LISTEN 24579/perl tcp6 0 0 fdxx:xxxx:xxxx::51:2525 :::* LISTEN 24579/perl tcp6 0 0 :::993 :::* LISTEN 1431/dovecot tcp6 0 0 :::995 :::* LISTEN 1431/dovecot tcp6 0 0 2600:3c02::f03c:91f:587 :::* LISTEN 24579/perl tcp6 0 0 fdxx:xxxx:xxxx::51:587 :::* LISTEN 24579/perl tcp6 0 0 :::111 :::* LISTEN 1486/rpcbind tcp6 0 0 :::655 :::* LISTEN 1113/tincd tcp6 0 0 2600:3c02::f03c:91f:465 :::* LISTEN 24579/perl tcp6 0 0 fdxx:xxxx:xxxx::51:465 :::* LISTEN 24579/perl udp 0 0 0.0.0.0:111 0.0.0.0:* 1486/rpcbind udp 0 0 0.0.0.0:655 0.0.0.0:* 1113/tincd udp 0 0 0.0.0.0:813 0.0.0.0:* 1486/rpcbind udp6 0 0 :::111 :::* 1486/rpcbind udp6 0 0 :::655 :::* 1113/tincd udp6 0 0 :::813 :::* 1486/rpcbind > The OS is answering to both IPv4 and IPv6 at port 6666. Where is your netstat? Is it listening on both IPv4 and IPv6? Again you are likely getting a response from the IPv6 port to IPv4 via IPv4 in IPv6. It is NOT the same as IPv4 connecting to a IPv4 port. If you do netstat its only listening on one port. You have just confirmed that the issue is Linux specific and how the perl module operates on Linux. It has a bug, thus it gets the message "Address already in use" because of how that module is coded. Do the same thing with Perl 5.14 IO::Socket::IP and see the difference for yourself. Then you can see how the different Perl modules operate/function differently on the same OS. -- William L. Thomson Jr. Obsidian-Studios, Inc. http://www.obsidian-studios.com ------------------------------------------------------------------------------ Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical & virtual servers, alerts via email & sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o _______________________________________________ Assp-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/assp-user
