You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by mm...@apache.org on 2014/11/19 02:44:02 UTC

svn commit: r1640462 - /spamassassin/trunk/lib/Mail/SpamAssassin/Util/TinyRedis.pm

Author: mmartinec
Date: Wed Nov 19 01:44:02 2014
New Revision: 1640462

URL: http://svn.apache.org/r1640462
Log:
Util::TinyRedis: allow a scoped / link-local IP address specification (avoid current limitation in IO::Socket::IP [rt.cpan.org #89608])

Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/Util/TinyRedis.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Util/TinyRedis.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Util/TinyRedis.pm?rev=1640462&r1=1640461&r2=1640462&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Util/TinyRedis.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Util/TinyRedis.pm Wed Nov 19 01:44:02 2014
@@ -69,9 +69,12 @@ sub connect {
   if ($server =~ m{^/}) {
     $sock = IO::Socket::UNIX->new(
               Peer => $server, Type => SOCK_STREAM);
-  } else {
+  } elsif ($server =~ /^(?: \[ ([^\]]+) \] | ([^:]+) ) : ([^:]+) \z/xs) {
+    $server = defined $1 ? $1 : $2;  my $port = $3;
     $sock = $io_socket_module_name->new(
-              PeerAddr => $server, Proto => 'tcp');
+              PeerAddr => $server, PeerPort => $port, Proto => 'tcp');
+  } else {
+    die "Invalid 'server:port' specification: $server";
   }
   if ($sock) {
     $self->{sock} = $sock;