rgossip2 0.2.4 → 0.2.5

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/bin/gossip CHANGED
@@ -7,6 +7,8 @@ require 'optparse'
7
7
  require 'readline'
8
8
  require 'rgossip2'
9
9
 
10
+ Version = '0.2.5'
11
+
10
12
  options = {:auth_key => 'onion'}
11
13
 
12
14
  ARGV.options do |opt|
File without changes
@@ -15,6 +15,8 @@ module RGossip2
15
15
  # | Receiver |<>---+
16
16
  # +------------+
17
17
  #
18
+
19
+ class NodeListException < Exception; end
18
20
  class NodeList
19
21
  include ContextHelper
20
22
  extend Forwardable
@@ -67,6 +69,11 @@ module RGossip2
67
69
  # 長さを知るためにシリアライズ
68
70
  packed = node.serialize
69
71
 
72
+ # Prevent infinite loop when packed exceeds bufsiz. Loop happens because packed is never less than bufsize, therefor always triggering a redo.
73
+ if packed.length > bufsiz
74
+ raise NodeListException.new("serialized packed length (#{packed.length}) exceeds bufsiz (#{bufsiz})")
75
+ end
76
+
70
77
  # シリアライズしてバッファサイズ以下ならチャンクに追加
71
78
  if (datasum + packed).length <= bufsiz
72
79
  nodes << node
data/lib/rgossip2.rb CHANGED
@@ -3,7 +3,7 @@ require 'rgossip2/context_helper'
3
3
  require 'rgossip2/client'
4
4
  require 'rgossip2/node'
5
5
  require 'rgossip2/node_list'
6
- require 'rgossip2/gossipper'
6
+ require 'rgossip2/gossiper'
7
7
  require 'rgossip2/receiver'
8
8
  require 'rgossip2/timer'
9
9
 
metadata CHANGED
@@ -1,104 +1,89 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rgossip2
3
- version: !ruby/object:Gem::Version
4
- hash: 31
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.5
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 4
10
- version: 0.2.4
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - winebarrel
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-02-05 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2013-05-19 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: msgpack
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: rping
36
23
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rping
32
+ requirement: !ruby/object:Gem::Requirement
38
33
  none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 19
43
- segments:
44
- - 0
45
- - 1
46
- - 4
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
47
37
  version: 0.1.4
48
38
  type: :runtime
49
- version_requirements: *id002
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 0.1.4
50
46
  description:
51
47
  email: sgwr_dts@yahoo.co.jp
52
- executables:
48
+ executables:
53
49
  - gossip
54
50
  extensions: []
55
-
56
51
  extra_rdoc_files: []
57
-
58
- files:
52
+ files:
59
53
  - README
60
54
  - bin/gossip
61
- - lib/rgossip2.rb
62
- - lib/rgossip2/timer.rb
63
- - lib/rgossip2/gossipper.rb
64
55
  - lib/rgossip2/client.rb
65
- - lib/rgossip2/receiver.rb
66
56
  - lib/rgossip2/context.rb
67
- - lib/rgossip2/node.rb
68
57
  - lib/rgossip2/context_helper.rb
58
+ - lib/rgossip2/gossiper.rb
59
+ - lib/rgossip2/node.rb
69
60
  - lib/rgossip2/node_list.rb
61
+ - lib/rgossip2/receiver.rb
62
+ - lib/rgossip2/timer.rb
63
+ - lib/rgossip2.rb
70
64
  homepage: https://bitbucket.org/winebarrel/rgossip2
71
65
  licenses: []
72
-
73
66
  post_install_message:
74
67
  rdoc_options: []
75
-
76
- require_paths:
68
+ require_paths:
77
69
  - lib
78
- required_ruby_version: !ruby/object:Gem::Requirement
70
+ required_ruby_version: !ruby/object:Gem::Requirement
79
71
  none: false
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- hash: 3
84
- segments:
85
- - 0
86
- version: "0"
87
- required_rubygems_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
77
  none: false
89
- requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- hash: 3
93
- segments:
94
- - 0
95
- version: "0"
78
+ requirements:
79
+ - - ! '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
96
82
  requirements: []
97
-
98
83
  rubyforge_project:
99
- rubygems_version: 1.8.1
84
+ rubygems_version: 1.8.23
100
85
  signing_key:
101
86
  specification_version: 3
102
- summary: Basic implementation of a gossip protocol. This is a porting of Java implementation. see http://code.google.com/p/gossip-protocol-java/
87
+ summary: Basic implementation of a gossip protocol. This is a porting of Java implementation.
88
+ see http://code.google.com/p/gossip-protocol-java/
103
89
  test_files: []
104
-