c3s 0.3.6 → 0.4.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/Manifest CHANGED
@@ -12,4 +12,5 @@ lib/pubsub/nodetracker.rb
12
12
  lib/pubsub/publisher.rb
13
13
  lib/pubsub/subscriber.rb
14
14
  lib/republisher.rb
15
+ test.pcap
15
16
  Manifest
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
4
 
5
- Echoe.new('c3s', '0.3.6') do |p|
5
+ Echoe.new('c3s', '0.4.0') do |p|
6
6
  p.description = "C3s library gem."
7
7
  p.url = "http://github.com/rikas/c3s"
8
8
  p.author = "Ricardo Otero"
data/c3s.gemspec CHANGED
@@ -2,15 +2,15 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{c3s}
5
- s.version = "0.3.6"
5
+ s.version = "0.4.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Ricardo Otero"]
9
- s.date = %q{2010-04-19}
9
+ s.date = %q{2010-04-23}
10
10
  s.description = %q{C3s library gem.}
11
11
  s.email = %q{oterosantos@gmail.com}
12
12
  s.extra_rdoc_files = ["README.rdoc", "lib/c3s.rb", "lib/c3s_logger.rb", "lib/component.rb", "lib/component_connection.rb", "lib/configreader.rb", "lib/databaseadapter.rb", "lib/model.rb", "lib/pubsub/node.rb", "lib/pubsub/nodetracker.rb", "lib/pubsub/publisher.rb", "lib/pubsub/subscriber.rb", "lib/republisher.rb"]
13
- s.files = ["README.rdoc", "Rakefile", "c3s.gemspec", "lib/c3s.rb", "lib/c3s_logger.rb", "lib/component.rb", "lib/component_connection.rb", "lib/configreader.rb", "lib/databaseadapter.rb", "lib/model.rb", "lib/pubsub/node.rb", "lib/pubsub/nodetracker.rb", "lib/pubsub/publisher.rb", "lib/pubsub/subscriber.rb", "lib/republisher.rb", "Manifest"]
13
+ s.files = ["README.rdoc", "Rakefile", "lib/c3s.rb", "lib/c3s_logger.rb", "lib/component.rb", "lib/component_connection.rb", "lib/configreader.rb", "lib/databaseadapter.rb", "lib/model.rb", "lib/pubsub/node.rb", "lib/pubsub/nodetracker.rb", "lib/pubsub/publisher.rb", "lib/pubsub/subscriber.rb", "lib/republisher.rb", "Manifest", "c3s.gemspec"]
14
14
  s.homepage = %q{http://github.com/rikas/c3s}
15
15
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "C3s", "--main", "README.rdoc"]
16
16
  s.require_paths = ["lib"]
data/lib/component.rb CHANGED
@@ -42,26 +42,20 @@ module C3s
42
42
  end
43
43
 
44
44
  ##
45
- # Starts listening for packets and waits for activity. Also
45
+ # Adds callbacks to listen for
46
46
  # provides a callback named *handle_iq* for especific components
47
47
  # to use.
48
- def start
49
- super
50
-
51
- Thread.abort_on_exception = true
52
-
48
+ def add_callbacks
53
49
  add_iq_callback do |iq|
54
50
  t1 = Thread.new do
55
51
  handle_iq(iq)
56
52
  end
57
- t1.join
58
53
  end
59
54
 
60
55
  add_message_callback do |msg|
61
56
  t2 = Thread.new do
62
57
  handle_msg(msg)
63
58
  end
64
- t2.join
65
59
  end
66
60
  end
67
61
 
@@ -94,6 +88,7 @@ module C3s
94
88
  # Handles discovery, sets and gets
95
89
  # iq:: [Jabber::IQ] the received IQ packet
96
90
  def handle_iq(iq)
91
+ $LOG.info "Got an iq: #{iq.id}"
97
92
  if iq.query.kind_of?(Jabber::Discovery::IqQueryDiscoInfo)
98
93
  handle_disco_info(iq)
99
94
  elsif iq.query.first_element(config['name']) # TODO assuming that pubsubnode = xml root
@@ -141,7 +136,7 @@ module C3s
141
136
  if object.errors.count == 0
142
137
  $LOG.info "Publishing data to node #{config['name']}:#{data[:jid]} (data changed: #{changed})"
143
138
  c3snode = C3s::Node.new("#{config['name']}:#{data[:jid]}")
144
- publish(c3snode, stanza, changed)
139
+ self.publish_to_pubsub(c3snode, stanza, changed)
145
140
  send_ok(iq)
146
141
  end
147
142
 
@@ -191,7 +186,7 @@ module C3s
191
186
  # c3snode:: [C3s::Node] the pubsub node
192
187
  # data:: [String] what to publish
193
188
  # changed:: [Boolean] the data is different from last set operation?
194
- def publish(c3snode, data, changed)
189
+ def publish_to_pubsub(c3snode, data, changed)
195
190
  if changed
196
191
  $LOG.info "Information for node '#{c3snode.to_s}' changed. Publishing data..."
197
192
  pub = Publisher.new(self, config['pubsub'])
@@ -199,7 +194,9 @@ module C3s
199
194
  pub.publish(c3snode, data)
200
195
  end
201
196
 
202
- #send_ok(iq) if iq.is_a?(Jabber::Iq)
197
+ send_ok(iq) if iq.is_a?(Jabber::Iq)
198
+ rescue Exception => e
199
+ $LOG.error("#{e.inspect} #{e.backtrace.join("\n")}")
203
200
  end
204
201
 
205
202
  ##
@@ -63,6 +63,8 @@ module C3s
63
63
  end
64
64
 
65
65
  puts "Starting messaging loop..."
66
+ Thread.abort_on_exception = true
67
+ @component.add_callbacks
66
68
  Thread.stop
67
69
  end
68
70
 
@@ -96,6 +96,8 @@ module C3s
96
96
  item = Jabber::PubSub::Item.new
97
97
  item.add(content)
98
98
  @pubsub.publish_item_to(c3snode.to_s, item)
99
+ rescue Exception => e
100
+ $LOG.error("#{e.inspect} #{e.backtrace.join("\n")}")
99
101
  end
100
102
 
101
103
  ##
@@ -108,8 +110,8 @@ module C3s
108
110
  nodebrowser.get_info(@service, name)
109
111
  NodeTracker.add_node(name)
110
112
  true
111
- rescue Jabber::ServerError => error
112
- return false if error.to_s.include?("item-not-found")
113
+ rescue Jabber::ServerError => e
114
+ return false if e.to_s.include?("item-not-found")
113
115
  end
114
116
  end
115
117
  end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 3
8
- - 6
9
- version: 0.3.6
7
+ - 4
8
+ - 0
9
+ version: 0.4.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Ricardo Otero
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-04-19 00:00:00 +01:00
17
+ date: 2010-04-23 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies: []
20
20
 
@@ -41,7 +41,6 @@ extra_rdoc_files:
41
41
  files:
42
42
  - README.rdoc
43
43
  - Rakefile
44
- - c3s.gemspec
45
44
  - lib/c3s.rb
46
45
  - lib/c3s_logger.rb
47
46
  - lib/component.rb
@@ -55,6 +54,7 @@ files:
55
54
  - lib/pubsub/subscriber.rb
56
55
  - lib/republisher.rb
57
56
  - Manifest
57
+ - c3s.gemspec
58
58
  has_rdoc: true
59
59
  homepage: http://github.com/rikas/c3s
60
60
  licenses: []