raindrops 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/GIT-VERSION-GEN CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/bin/sh
2
2
 
3
3
  GVF=GIT-VERSION-FILE
4
- DEF_VER=v0.2.0.GIT
4
+ DEF_VER=v0.3.0.GIT
5
5
 
6
6
  LF='
7
7
  '
data/GNUmakefile CHANGED
@@ -53,7 +53,7 @@ NEWS: GIT-VERSION-FILE
53
53
  latest: NEWS
54
54
  @awk 'BEGIN{RS="=== ";ORS=""}NR==2{sub(/\n$$/,"");print RS""$$0 }' $<
55
55
 
56
- SINCE = 0.1.0
56
+ SINCE = 0.2.1
57
57
  ChangeLog: LOG_VERSION = \
58
58
  $(shell git rev-parse -q "$(GIT_VERSION)" >/dev/null 2>&1 && \
59
59
  echo $(GIT_VERSION) || git describe)
@@ -181,6 +181,7 @@ publish_doc:
181
181
  $(MAKE) -s latest > doc/LATEST
182
182
  find doc/images doc/js -type f | \
183
183
  TZ=UTC xargs touch -d '1970-01-01 00:00:00' doc/rdoc.css
184
+ tar cf - $$(git ls-files examples/) | (cd doc && tar xf -)
184
185
  $(MAKE) doc_gz
185
186
  chmod 644 $$(find doc -type f)
186
187
  $(RSYNC) -av doc/ raindrops.bogomips.org:/srv/raindrops/
data/LICENSE CHANGED
@@ -1,12 +1,14 @@
1
1
  raindrops is copyrighted Free Software by all contributors, see logs in
2
2
  revision control for names and email addresses of all of them.
3
3
 
4
- You can redistribute it and/or modify it under either the terms of the GNU
5
- Lesser General Public License as published by the Free Software Foundation,
6
- version 3.0 {LGPLv3}[http://www.gnu.org/licenses/lgpl-3.0.txt] (see
7
- link:COPYING).
4
+ You can redistribute it and/or modify it under the terms of the GNU
5
+ Lesser General Public License (LGPL) as published by the Free Software
6
+ Foundation, version {2.1}[http://www.gnu.org/licenses/lgpl-2.1.txt] or
7
+ or {3}[http://www.gnu.org/licenses/lgpl-3.0.txt] (see link:COPYING).
8
+ The raindrops project leader (Eric Wong) reserves the right to
9
+ relicense raindrops under future versions of the LGPL.
8
10
 
9
- posix_mq is distributed in the hope that it will be useful, but WITHOUT
11
+ raindrops is distributed in the hope that it will be useful, but WITHOUT
10
12
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
13
  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
12
14
  License for more details.
@@ -5,7 +5,8 @@
5
5
 
6
6
  require 'raindrops'
7
7
  require 'optparse'
8
- usage = "Usage: #$0 [--loop] ADDR..."
8
+ require 'ipaddr'
9
+ usage = "Usage: #$0 [-d delay] ADDR..."
9
10
  ARGV.size > 0 or abort usage
10
11
  delay = false
11
12
 
@@ -19,6 +20,21 @@ opts = OptionParser.new('', 24, ' ') do |opts|
19
20
  opts.parse! ARGV
20
21
  end
21
22
 
23
+ ARGV.each do |addr|
24
+ addr =~ %r{\A(127\..+):(\d+)\z} or next
25
+ host, port = $1, $2
26
+ hex_port = '%X' % port.to_i
27
+ ip_addr = IPAddr.new(host)
28
+ hex_host = ip_addr.hton.each_byte.inject('') { |s,o| s << '%02X' % o }
29
+ socks = File.readlines('/proc/net/tcp')
30
+ hex_addr = "#{hex_host}:#{hex_port}"
31
+ if socks.grep(/^\s+\d+:\s+#{hex_addr}\s+/).empty? &&
32
+ ! socks.grep(/^\s+\d+:\s+00000000:#{hex_port}\s+/).empty?
33
+ warn "W: #{host}:#{port} (#{hex_addr}) not found in /proc/net/tcp"
34
+ warn "W: Did you mean 0.0.0.0:#{port}?"
35
+ end
36
+ end
37
+
22
38
  fmt = "% 19s % 10u % 10u\n"
23
39
  printf fmt.tr('u','s'), *%w(address active queued)
24
40
 
@@ -77,7 +77,7 @@ struct listen_stats {
77
77
 
78
78
  struct nogvl_args {
79
79
  struct iovec iov[3]; /* last iov holds inet_diag bytecode */
80
- struct my_addr addrs;
80
+ struct my_addr query_addr;
81
81
  struct listen_stats stats;
82
82
  };
83
83
 
@@ -271,8 +271,8 @@ static VALUE tcp_stats(struct nogvl_args *args, VALUE addr)
271
271
  const char *err;
272
272
  VALUE verr;
273
273
 
274
- parse_addr(&args->addrs, addr);
275
- gen_bytecode(&args->iov[2], &args->addrs);
274
+ parse_addr(&args->query_addr, addr);
275
+ gen_bytecode(&args->iov[2], &args->query_addr);
276
276
 
277
277
  verr = rb_thread_blocking_region(diag, args, RUBY_UBF_IO, 0);
278
278
  err = (const char *)verr;
data/lib/raindrops.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # -*- encoding: binary -*-
2
2
  class Raindrops
3
3
 
4
- # Raindrops is currently at version 0.2.0
5
- VERSION = '0.2.0'
4
+ # Raindrops is currently at version 0.3.0
5
+ VERSION = '0.3.0'
6
6
 
7
7
  # Used to represent the number of +active+ and +queued+ sockets for
8
8
  # a single listen socket across all threads and processes on a
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: raindrops
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ hash: 19
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
5
11
  platform: ruby
6
12
  authors:
7
13
  - raindrops hackers
@@ -9,7 +15,7 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-05-05 00:00:00 +00:00
18
+ date: 2010-07-10 00:00:00 +00:00
13
19
  default_executable:
14
20
  dependencies: []
15
21
 
@@ -77,21 +83,27 @@ rdoc_options:
77
83
  require_paths:
78
84
  - lib
79
85
  required_ruby_version: !ruby/object:Gem::Requirement
86
+ none: false
80
87
  requirements:
81
88
  - - ">="
82
89
  - !ruby/object:Gem::Version
90
+ hash: 3
91
+ segments:
92
+ - 0
83
93
  version: "0"
84
- version:
85
94
  required_rubygems_version: !ruby/object:Gem::Requirement
95
+ none: false
86
96
  requirements:
87
97
  - - ">="
88
98
  - !ruby/object:Gem::Version
99
+ hash: 3
100
+ segments:
101
+ - 0
89
102
  version: "0"
90
- version:
91
103
  requirements: []
92
104
 
93
105
  rubyforge_project: rainbows
94
- rubygems_version: 1.3.5
106
+ rubygems_version: 1.3.7
95
107
  signing_key:
96
108
  specification_version: 3
97
109
  summary: real-time stats for preforking Rack servers