* [PATCH] unix: show zero-value stats for idle listeners
@ 2012-06-13 1:39 14% Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2012-06-13 1:39 UTC (permalink / raw)
To: raindrops
When unix_listener_stats is called without arguments, it should
still match the behavior of tcp_listener_stats and return
ListenerStats object with zero values.
This allows callers to iterate through the results to find the
pathnames of all the Unix domain sockets in in listen mode.
---
Pushed to "master" git://bogomips.org/raindrops
I'm thinking about releasing raindrops v0.10.0 soon.
I probably won't have time to use unix_diag functionality in the
Linux 3.3 kernel. I'm also lacking motivation since it'll be a
while before Linux 3.3 is widely-available on servers, and I'm
still supporting raindrops on 2.6.18 kernels :<
Brian Corrigan (1):
resolve symlinks to Unix domain sockets
Eric Wong (3):
unix_listener_stats follows and remembers symlinks
middleware/proxy: favor __send__ for method dispatch
unix: show zero-value stats for idle listeners
lib/raindrops/linux.rb | 14 ++++++++++----
test/test_linux.rb | 11 +++++++++++
2 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/lib/raindrops/linux.rb b/lib/raindrops/linux.rb
index 1752b8a..7cfb653 100644
--- a/lib/raindrops/linux.rb
+++ b/lib/raindrops/linux.rb
@@ -54,14 +54,20 @@ module Raindrops::Linux
Regexp.escape(path)
end
end
- paths = /^\w+: \d+ \d+ 00000000 \d+ (\d+)\s+\d+ (#{paths.join('|')})$/n
+ paths = /^\w+: \d+ \d+ (\d+) \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|
path = s[-1]
- case s[0].to_i
- when 2 then rv[path].queued += 1
- when 3 then rv[path].active += 1
+ case s[0]
+ when "00000000" # client sockets
+ case s[1].to_i
+ when 2 then rv[path].queued += 1
+ when 3 then rv[path].active += 1
+ end
+ else
+ # listeners, vivify empty stats
+ rv[path]
end
end
diff --git a/test/test_linux.rb b/test/test_linux.rb
index a84eecf..0e79a86 100644
--- a/test/test_linux.rb
+++ b/test/test_linux.rb
@@ -67,6 +67,17 @@ class TestLinux < Test::Unit::TestCase
assert_equal 1, stats[tmp.path].queued
end
+ def test_unix_all_unused
+ tmp = Tempfile.new("\xde\xad\xbe\xef") # valid path, really :)
+ File.unlink(tmp.path)
+ us = UNIXServer.new(tmp.path)
+ stats = unix_listener_stats
+ assert stats.keys.include?(tmp.path), stats.inspect
+
+ assert_equal 0, stats[tmp.path].active
+ assert_equal 0, stats[tmp.path].queued
+ end
+
def test_unix_resolves_symlinks
tmp = Tempfile.new("\xde\xad\xbe\xef") # valid path, really :)
File.unlink(tmp.path)
--
Eric Wong
^ permalink raw reply related [relevance 14%]
* [ANN] raindrops 0.10.0 - minor feature updates
@ 2012-06-19 8:33 7% Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2012-06-19 8:33 UTC (permalink / raw)
To: raindrops
Changes:
Improvements to the Unix domain socket handling and small
bugfixes throughout.
Support for the "unix_diag" facility in Linux 3.3+ is planned
but not yet implemented (patches to raindrops@librelist.org
appreciated)
Brian Corrigan (1):
resolve symlinks to Unix domain sockets
Eric Wong (6):
unix_listener_stats follows and remembers symlinks
middleware/proxy: favor __send__ for method dispatch
unix: show zero-value stats for idle listeners
test_watcher: fix incorrect request/date comparison
watcher: sort index of listener listing
watcher: do not require Rack::Head for HEAD response
See "git log v0.9.0..v0.10.0" for full details
* http://raindrops.bogomips.org/
* raindrops@librelist.org
* git://bogomips.org/raindrops.git
* http://raindrops.bogomips.org/NEWS.atom.xml
--
Eric Wong
^ permalink raw reply [relevance 7%]
Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2012-06-13 1:39 14% [PATCH] unix: show zero-value stats for idle listeners Eric Wong
2012-06-19 8:33 7% [ANN] raindrops 0.10.0 - minor feature updates Eric Wong
Code repositories for project(s) associated with this public inbox
https://yhbt.net/raindrops.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).