Subject: | Warning in pack() at SOCKS.pm line 480 |
So I tried the sample script from the manpage, and got this warning:
Argument "@M-^RM-^Dy" isn't numeric in pack at
/usr/lib/perl5/site_perl/5.8.8/POE/Component/Proxy/SOCKS.pm line 480.
That line is in the functions _sock_up, and the line in question is a pack:
my $response = pack "CCnN", 0, 90, $client->{dstport}, inet_aton(
$client->{dstip} );
The problem is, the return value from inet_aton (a 4 byte network
address) isn't recognized as a good value for the "N" part of pack.
I changed it to:
my $response = pack "CCnN", 0, 90, $client->{dstport}, <br>unpack("N",
</b>inet_aton( $client->{dstip}<b>)</b> );
The fix is to unpack("N", inet_aton(...)), converting the packed value
back into an integer that pack() can then process with "N".
A little creative debug ouput from Spiffy reveals:
---
fixed: "\0Z\0P@��y"
unfixed: "\0Z\0P\0\0\0\0"
...
I don't know enough about Socks4 to know how bad that is, but it doesn't
look right to me. ;-)