rsence-pre 2.2.0.4 → 2.2.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.2.0.4.pre
1
+ 2.2.0.5.pre
@@ -36,6 +36,19 @@
36
36
  # how many milliseconds to wait before doing an idle poll
37
37
  :server_poll_interval: 2000 # 2 seconds
38
38
  #
39
+ # The settings for the daemon
40
+ :daemon:
41
+ #
42
+ # How long to wait before binding the broker to the
43
+ # HTTP address and port after starting the Transporter.
44
+ # A value of -1 disables the broker completely.
45
+ # Before waiting, the daemon starts all subsystems except the
46
+ # http handling front-end (Broker).
47
+ # Useful in situations where RSence itself configures the
48
+ # network interfaces or the interfaces become available after
49
+ # RSence is started.
50
+ :http_delayed_start: 0
51
+ #
39
52
  # Switches on debug-mode:
40
53
  # - Generates more output
41
54
  # - Each time /hello is post-requested:
@@ -278,6 +278,16 @@
278
278
  Only available on Mac OS X and other systems with a
279
279
  'say' command installed.
280
280
 
281
+ --http-delayed-start <number> Waits for <number> of seconds before starting
282
+ the HTTP Broker after starting the Transporter.
283
+ A value of -1 disables the broker completely.
284
+ Before waiting, the daemon starts all subsystems except the
285
+ http handling front-end (Broker).
286
+ Useful in situations where RSence itself configures the
287
+ network interfaces or the interfaces become available after
288
+ RSence is started.
289
+
290
+
281
291
  :initenv: |+
282
292
  Alias name of the 'init' command.
283
293
 
data/lib/conf/argv.rb CHANGED
@@ -110,6 +110,7 @@ module RSence
110
110
  :autoupdate => false, # -a --auto-update
111
111
  :latency => 0, # --latency
112
112
  :say => false, # -S --say
113
+ :http_delayed_start => nil, # --http-delayed-start
113
114
 
114
115
  # client_pkg (not supported yet)
115
116
  :client_pkg_no_gzip => false, # --build-no-gzip
@@ -128,7 +129,7 @@ module RSence
128
129
  if @argv.length >= 2
129
130
  @argv[1..-1].each_with_index do |arg,i|
130
131
  if expect_option
131
- if [:port,:latency].include?(option_name) and arg.to_i.to_s != arg
132
+ if [ :port, :latency, :http_delayed_start ].include?(option_name) and arg.to_i.to_s != arg
132
133
  puts ERB.new( @@strs[:messages][:invalid_option_expected_number] ).result( binding )
133
134
  exit
134
135
  elsif option_name == :conf_files
@@ -138,6 +139,8 @@ module RSence
138
139
  else
139
140
  @args[:conf_files].push( arg )
140
141
  end
142
+ elsif option_name == :http_delayed_start
143
+ @args[:http_delayed_start] = arg.to_i
141
144
  else
142
145
  arg = arg.to_i if option_name == :latency
143
146
  @args[option_name] = arg
@@ -163,6 +166,9 @@ module RSence
163
166
  elsif arg == '--addr'
164
167
  expect_option = true
165
168
  option_name = :addr
169
+ elsif arg == '--http-delayed-start'
170
+ expect_option = true
171
+ option_name = :http_delayed_start
166
172
  elsif arg == '--server'
167
173
  expect_option = true
168
174
  option_name = :server
@@ -793,12 +799,16 @@ module RSence
793
799
  puts version
794
800
  exit
795
801
  elsif [:run,:start,:stop,:restart].include? cmd
802
+ puts "RSence #{@@version} -- Ruby #{RUBY_VERSION}"
796
803
  parse_startup_argv
797
804
  elsif cmd == :status
805
+ puts "RSence #{@@version} -- Ruby #{RUBY_VERSION}"
798
806
  parse_status_argv
799
807
  elsif cmd == :save
808
+ puts "RSence #{@@version} -- Ruby #{RUBY_VERSION}"
800
809
  parse_save_argv
801
810
  elsif cmd == :initenv or cmd == :init
811
+ puts "RSence #{@@version} -- Ruby #{RUBY_VERSION}"
802
812
  parse_initenv_argv
803
813
  end
804
814
  else
data/lib/conf/default.rb CHANGED
@@ -143,6 +143,7 @@ module RSence
143
143
  config[:http_server][:bind_address] = args[:addr] if args[:addr]
144
144
  config[:http_server][:rack_require] = args[:server] if args[:server]
145
145
  config[:session_conf][:reset_sessions] = true if args[:reset_ses]
146
+ config[:daemon][:http_delayed_start] = args[:http_delayed_start] if args[:http_delayed_start] != nil
146
147
 
147
148
  config[:client_pkg][:no_obfuscation] = true if args[:client_pkg_no_obfuscation]
148
149
  config[:client_pkg][:no_whitespace_removal] = true if args[:client_pkg_no_whitespace_removal]
data/lib/daemon/daemon.rb CHANGED
@@ -276,9 +276,44 @@ module RSence
276
276
  "RSence-#{RSence.version} on #{url} in #{env_path}"
277
277
  end
278
278
 
279
+ def start_broker( conf )
280
+ http_delayed_seconds = RSence.config[:daemon][:http_delayed_start].to_i
281
+ if http_delayed_seconds == -1
282
+ puts "The HTTP Broker is disabled. RSence won't bind a http listener to any address."
283
+ else
284
+ if http_delayed_seconds > 0
285
+ puts "Delaying the start of the HTTP Broker by #{http_delayed_seconds} seconds."
286
+ if http_delayed_seconds > 10
287
+ # report when starting in 10 second intervals
288
+ sleep_remainder = http_delayed_seconds % 10
289
+ sleep_count = http_delayed_seconds / 10
290
+ sleep_time_left = http_delayed_seconds
291
+ sleep_count.times do |sleep_count_num|
292
+ puts "Waiting #{sleep_time_left} seconds..."
293
+ sleep 10
294
+ sleep_time_left -= 10
295
+ end
296
+ if sleep_remainder != 0
297
+ puts "Waiting #{sleep_remainder} seconds..."
298
+ sleep sleep_remainder
299
+ end
300
+ else
301
+ sleep http_delayed_seconds
302
+ end
303
+ puts "Starting the HTTP Broker now."
304
+ end
305
+ # This is the main http handler instance:
306
+ @broker = Broker.start(
307
+ @transporter,
308
+ conf
309
+ )
310
+ end
311
+ end
312
+
279
313
  # RSence top-level run handler. Almost identical to start.
280
314
  def run
281
315
 
316
+ # Sets the process name
282
317
  $0 = ps_name
283
318
 
284
319
  puts "Starting as a foreground process." if RSence.args[:verbose]
@@ -291,13 +326,9 @@ module RSence
291
326
  unless RSence.args[:log_fg]
292
327
  Daemon.start_logging( self )
293
328
  end
294
-
295
- # This is the main http handler instance:
296
- @broker = Broker.start(
297
- @transporter,
298
- conf
299
- )
300
-
329
+
330
+ start_broker( conf )
331
+
301
332
  end
302
333
 
303
334
  # Returns the pid file path.
@@ -323,24 +354,22 @@ module RSence
323
354
  # Called by Controller#start, contains RSence-specific operations
324
355
  def start
325
356
 
357
+ # Sets the process name
326
358
  $0 = ps_name
327
359
 
328
360
  @transporter = Transporter.new
329
-
361
+
330
362
  conf = RSence.config[:http_server]
331
-
363
+
332
364
  unless RSence.args[:log_fg]
333
365
  Daemon.start_logging( self )
334
366
  STDIN.reopen( "/dev/null" )
335
367
  end
336
-
368
+
337
369
  Process.setsid
338
-
339
- # This is the main http handler instance:
340
- @broker = Broker.start(
341
- @transporter,
342
- conf
343
- )
370
+
371
+ start_broker( conf )
372
+
344
373
  yield @broker
345
374
 
346
375
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsence-pre
3
3
  version: !ruby/object:Gem::Version
4
- hash: 119
4
+ hash: 117
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 2
9
9
  - 0
10
- - 4
11
- version: 2.2.0.4
10
+ - 5
11
+ version: 2.2.0.5
12
12
  platform: ruby
13
13
  authors:
14
14
  - Riassence Inc.
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-03-30 00:00:00 +03:00
19
+ date: 2011-04-01 00:00:00 +03:00
20
20
  default_executable: rsence-pre
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency