diff options
author | Jon Jensen <jon@endpoint.com> | 2010-04-19 23:33:21 -0600 |
---|---|---|
committer | Dustin Sallings <dustin@spy.net> | 2010-04-20 00:07:15 -0700 |
commit | b4936c4e94ea8929f10dcaa9563c105524fbcc12 (patch) | |
tree | 41703226ef0b5650463469f558d550a5b4c6773a | |
parent | 49ef81a2e9b055e8b37caf3d0956012fbbe07ae8 (diff) | |
download | memcached-b4936c4e94ea8929f10dcaa9563c105524fbcc12.tar.gz |
Allow use of a UNIX socket in addition to INET sockets
-rwxr-xr-x | scripts/memcached-tool | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/scripts/memcached-tool b/scripts/memcached-tool index b8a1b06..ed03134 100755 --- a/scripts/memcached-tool +++ b/scripts/memcached-tool @@ -14,7 +14,7 @@ use strict; use IO::Socket::INET; -my $host = shift; +my $addr = shift; my $mode = shift || "display"; my ($from, $to); @@ -37,18 +37,29 @@ if ($mode eq "display") { undef $mode if @ARGV; die - "Usage: memcached-tool <host[:port]> [mode]\n + "Usage: memcached-tool <host[:port] | /path/to/socket> [mode]\n memcached-tool 10.0.0.5:11211 display # shows slabs memcached-tool 10.0.0.5:11211 # same. (default is display) memcached-tool 10.0.0.5:11211 stats # shows general stats memcached-tool 10.0.0.5:11211 dump # dumps keys and values -" unless $host && $mode; +" unless $addr && $mode; -$host .= ":11211" unless $host =~ /:\d+/; -my $sock = IO::Socket::INET->new(PeerAddr => $host, - Proto => 'tcp'); -die "Couldn't connect to $host\n" unless $sock; +my $sock; +if ($addr =~ m:/:) { + $sock = IO::Socket::UNIX->new( + Peer => $addr, + ); +} +else { + $addr .= ':11211' unless $addr =~ /:\d+$/; + + $sock = IO::Socket::INET->new( + PeerAddr => $addr, + Proto => 'tcp', + ); +} +die "Couldn't connect to $addr\n" unless $sock; if ($mode eq 'dump') { my %items; @@ -110,7 +121,7 @@ if ($mode eq 'stats') { $items{$1} = $2; } } - printf ("#%-17s %5s %11s\n", $host, "Field", "Value"); + printf ("#%-17s %5s %11s\n", $addr, "Field", "Value"); foreach my $name (sort(keys(%items))) { printf ("%24s %12s\n", $name, $items{$name}); |