juggernaut 0.5.4 → 0.5.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.
@@ -1,10 +1,11 @@
1
+ require 'rubygems'
1
2
  require 'logger'
2
3
  require 'eventmachine'
3
4
  require 'json'
4
5
  $:.unshift(File.dirname(__FILE__))
5
6
 
6
7
  module Juggernaut
7
- VERSION = '0.5.4'
8
+ VERSION = '0.5.5'
8
9
 
9
10
  class JuggernautError < StandardError #:nodoc:
10
11
  end
@@ -145,9 +145,10 @@ module Juggernaut
145
145
  params << "session_id=#{session_id}" if session_id
146
146
  channels.each {|chan| params << "channels[]=#{chan}" }
147
147
  url.query = params.join('&')
148
- begin
148
+ begin
149
149
  open(url.to_s, "User-Agent" => "Ruby/#{RUBY_VERSION}")
150
- rescue
150
+ rescue => e
151
+ logger.debug("Bad response from #{url.to_s}: #{e}")
151
152
  return false
152
153
  end
153
154
  true
@@ -31,7 +31,7 @@ module Juggernaut
31
31
  parse_options
32
32
 
33
33
  if !File.exists?(config_path)
34
- puts "You must generate a config file (juggernaut -g)"
34
+ puts "You must generate a config file (juggernaut -g filename.yml)"
35
35
  exit
36
36
  end
37
37
 
@@ -62,10 +62,17 @@ module Juggernaut
62
62
  stop
63
63
  exit
64
64
  }
65
+
66
+ if options[:descriptor_table_size]
67
+ EM.epoll
68
+ new_size = EM.set_descriptor_table_size( options[:descriptor_table_size] )
69
+ logger.debug "New descriptor-table size is #{new_size}"
70
+ end
65
71
 
66
72
  EventMachine::run {
67
73
  EventMachine::add_periodic_timer( options[:cleanup_timer].to_i ) { Juggernaut::Client.send_logouts_after_timeout }
68
74
  EventMachine::start_server(options[:host], options[:port].to_i, Juggernaut::Server)
75
+ EM.set_effective_user( options[:user] ) if options[:user]
69
76
  }
70
77
  end
71
78
 
@@ -105,6 +112,10 @@ module Juggernaut
105
112
  opts.on("-p", "--port PORT", Integer, "Specify port", "(default: #{options[:port]})") do |v|
106
113
  options[:port] = v
107
114
  end
115
+
116
+ opts.on("-s", "--fdsize SIZE", Integer, "Set the file descriptor size an user epoll() on Linux", "(default: use select() which is limited to 1024 clients)") do |v|
117
+ options[:descriptor_table_size] = v
118
+ end
108
119
 
109
120
  opts.separator ""; opts.separator "Daemonization:"
110
121
 
@@ -116,7 +127,7 @@ module Juggernaut
116
127
  options[:daemonize] = v
117
128
  end
118
129
 
119
- opts.on("-k", "--kill PORT", String, "Kill specified running daemons - leave blank to kill all.") do |v|
130
+ opts.on("-k", "--kill PORT", String, :OPTIONAL, "Kill specified running daemons - leave blank to kill all.") do |v|
120
131
  options[:kill] = v
121
132
  end
122
133
 
@@ -350,13 +350,15 @@ module Juggernaut
350
350
  url = URI.parse(options[:broadcast_query_login_url])
351
351
  params = []
352
352
  params << "client_id=#{@request[:client_id]}" if @request[:client_id]
353
- params << "session_id=#{@request[:session_id]}" if @request[:session_id]
353
+ params << "session_id=#{URI.escape(@request[:session_id])}" if @request[:session_id]
354
354
  params << "type=#{@request[:type]}"
355
355
  params << "command=#{@request[:command]}"
356
356
  (@request[:channels] || []).each {|chan| params << "channels[]=#{chan}" }
357
357
  url.query = params.join('&')
358
358
  begin
359
359
  open(url.to_s, "User-Agent" => "Ruby/#{RUBY_VERSION}")
360
+ rescue Timeout::Error
361
+ return false
360
362
  rescue
361
363
  return false
362
364
  end
metadata CHANGED
@@ -1,66 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: juggernaut
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.5.4
7
- date: 2008-04-04 00:00:00 +01:00
8
- summary: FIX (describe your package)
9
- require_paths:
10
- - lib
11
- email: info@eribium.org
12
- homepage: http://juggernaut.rubyforge.org
13
- rubyforge_project: juggernaut
14
- description: FIX (describe your package)
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: 0.5.5
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Alex MacCaw
31
- files:
32
- - History.txt
33
- - Manifest.txt
34
- - README.txt
35
- - Rakefile
36
- - bin/juggernaut
37
- - lib/juggernaut.rb
38
- - lib/juggernaut/client.rb
39
- - lib/juggernaut/message.rb
40
- - lib/juggernaut/miscel.rb
41
- - lib/juggernaut/runner.rb
42
- - lib/juggernaut/server.rb
43
- - lib/juggernaut/utils.rb
44
- test_files: []
45
-
46
- rdoc_options:
47
- - --main
48
- - README.txt
49
- extra_rdoc_files:
50
- - History.txt
51
- - Manifest.txt
52
- - README.txt
53
- executables:
54
- - juggernaut
55
- extensions: []
56
-
57
- requirements: []
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
58
11
 
12
+ date: 2008-08-03 00:00:00 +01:00
13
+ default_executable:
59
14
  dependencies:
60
15
  - !ruby/object:Gem::Dependency
61
16
  name: eventmachine
17
+ type: :runtime
62
18
  version_requirement:
63
- version_requirements: !ruby/object:Gem::Version::Requirement
19
+ version_requirements: !ruby/object:Gem::Requirement
64
20
  requirements:
65
21
  - - ">="
66
22
  - !ruby/object:Gem::Version
@@ -68,8 +24,9 @@ dependencies:
68
24
  version:
69
25
  - !ruby/object:Gem::Dependency
70
26
  name: json
27
+ type: :runtime
71
28
  version_requirement:
72
- version_requirements: !ruby/object:Gem::Version::Requirement
29
+ version_requirements: !ruby/object:Gem::Requirement
73
30
  requirements:
74
31
  - - ">="
75
32
  - !ruby/object:Gem::Version
@@ -77,10 +34,63 @@ dependencies:
77
34
  version:
78
35
  - !ruby/object:Gem::Dependency
79
36
  name: hoe
37
+ type: :development
80
38
  version_requirement:
81
- version_requirements: !ruby/object:Gem::Version::Requirement
39
+ version_requirements: !ruby/object:Gem::Requirement
82
40
  requirements:
83
41
  - - ">="
84
42
  - !ruby/object:Gem::Version
85
- version: 1.5.1
43
+ version: 1.7.0
86
44
  version:
45
+ description: FIX (describe your package)
46
+ email: info@eribium.org
47
+ executables:
48
+ - juggernaut
49
+ extensions: []
50
+
51
+ extra_rdoc_files:
52
+ - History.txt
53
+ - Manifest.txt
54
+ - README.txt
55
+ files:
56
+ - History.txt
57
+ - Manifest.txt
58
+ - README.txt
59
+ - Rakefile
60
+ - bin/juggernaut
61
+ - lib/juggernaut.rb
62
+ - lib/juggernaut/client.rb
63
+ - lib/juggernaut/message.rb
64
+ - lib/juggernaut/miscel.rb
65
+ - lib/juggernaut/runner.rb
66
+ - lib/juggernaut/server.rb
67
+ - lib/juggernaut/utils.rb
68
+ has_rdoc: true
69
+ homepage: http://juggernaut.rubyforge.org
70
+ post_install_message:
71
+ rdoc_options:
72
+ - --main
73
+ - README.txt
74
+ require_paths:
75
+ - lib
76
+ required_ruby_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: "0"
81
+ version:
82
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: "0"
87
+ version:
88
+ requirements: []
89
+
90
+ rubyforge_project: juggernaut
91
+ rubygems_version: 1.2.0
92
+ signing_key:
93
+ specification_version: 2
94
+ summary: FIX (describe your package)
95
+ test_files: []
96
+