summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorJon Jensen <jon@endpoint.com>2010-04-19 23:33:21 -0600
committerDustin Sallings <dustin@spy.net>2010-04-20 00:07:15 -0700
commitb4936c4e94ea8929f10dcaa9563c105524fbcc12 (patch)
tree41703226ef0b5650463469f558d550a5b4c6773a /scripts
parent49ef81a2e9b055e8b37caf3d0956012fbbe07ae8 (diff)
downloadmemcached-b4936c4e94ea8929f10dcaa9563c105524fbcc12.tar.gz
Allow use of a UNIX socket in addition to INET sockets
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/memcached-tool27
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});