diff options
author | Eric Wong <normalperson@yhbt.net> | 2011-03-14 16:38:58 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2011-03-14 16:38:58 -0700 |
commit | a9bfa55f9a1d1c96d73367d3bb46f7b9e81fbbf9 (patch) | |
tree | a825ae5fb517d023e079147cb357a42b4a46718c /lib/raindrops/linux.rb | |
parent | 724f82bb5feaf1df40b02b8f353e94496f060647 (diff) | |
download | raindrops-a9bfa55f9a1d1c96d73367d3bb46f7b9e81fbbf9.tar.gz |
This matches behavior of the TCP version.
Diffstat (limited to 'lib/raindrops/linux.rb')
-rw-r--r-- | lib/raindrops/linux.rb | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/raindrops/linux.rb b/lib/raindrops/linux.rb index 889c661..55887f0 100644 --- a/lib/raindrops/linux.rb +++ b/lib/raindrops/linux.rb @@ -34,15 +34,19 @@ module Raindrops::Linux # counterpart due to the latter being able to use inet_diag via netlink. # This parses /proc/net/unix as there is no other (known) way # to expose Unix domain socket statistics over netlink. - def unix_listener_stats(paths) + def unix_listener_stats(paths = nil) rv = Hash.new { |h,k| h[k.freeze] = Raindrops::ListenStats.new(0, 0) } - paths = paths.map do |path| - path = path.dup - path.force_encoding(Encoding::BINARY) if defined?(Encoding) - rv[path] - Regexp.escape(path) + if nil == paths + paths = [ '[^\n]+' ] + else + paths = paths.map do |path| + path = path.dup + path.force_encoding(Encoding::BINARY) if defined?(Encoding) + rv[path] + Regexp.escape(path) + end end - paths = / 00000000 \d+ (\d+)\s+\d+ (#{paths.join('|')})$/n + paths = /^\w+: \d+ \d+ 00000000 \d+ (\d+)\s+\d+ (#{paths.join('|')})$/n # no point in pread since we can't stat for size on this file File.read(*PROC_NET_UNIX_ARGS).scan(paths) do |s| |