cloudi 2.0.5 → 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/cloudi.rb +38 -7
  4. data.tar.gz.sig +0 -0
  5. metadata +28 -28
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 65c359d6cff1f2cbbc2a0ab55bc56f97aab5a727ed19c04c8b0dfa7127328189
4
- data.tar.gz: 3fc6a9b19b78357ff88e10310a60332f78c2006b51fa6d83c6e9458ba91dcb18
3
+ metadata.gz: 1bafe8bf926dbeffbb22c9180350a1a3fe63e1194727f9def1cd8a7c5f232e28
4
+ data.tar.gz: 7482ff223fcbce638f2777d6e413e80b350243466c9eac84dfe32c471910461c
5
5
  SHA512:
6
- metadata.gz: 0b54d32681bd4acdb412a7de6cd54ff185700ef2ca36b882c97777542806fe4ddb9166225527e751e2bb106c6007ee3e960c22d6a39ba50125599b47b6e03bf6
7
- data.tar.gz: 4a2c223d27dba9eef5516ad15270f5c58ee7985eb40613452a33c7562ada7f1c2617417314c8346cab1fcf7f5475f1440e776556e3960bd5a1dd7c632a23d802
6
+ metadata.gz: 37a3671d338cfe10232d8bc6d20dd2f98b3d95ef4020e43563b383a25410ec87cdeef7941aa76e50800472206f01b83e2e747280b0ec42650265bebfecdfaa2c
7
+ data.tar.gz: 392055389f57e7758c6b5711fa9fe6da3899e1d7a05d65b6975d1df258d10eae3f3f3a9bbab87b609e290ed783c194ddce2b2f862b4d81fc7b0f8d8bf66f685c
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/cloudi.rb CHANGED
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # MIT License
6
6
  #
7
- # Copyright (c) 2011-2022 Michael Truog <mjtruog at protonmail dot com>
7
+ # Copyright (c) 2011-2023 Michael Truog <mjtruog at protonmail dot com>
8
8
  #
9
9
  # Permission is hereby granted, free of charge, to any person obtaining a
10
10
  # copy of this software and associated documentation files (the "Software"),
@@ -43,7 +43,7 @@ module CloudI
43
43
 
44
44
  def initialize(thread_index)
45
45
  protocol = API.getenv('CLOUDI_API_INIT_PROTOCOL')
46
- buffer_size_str = API.getenv('CLOUDI_API_INIT_BUFFER_SIZE')
46
+ buffer_size = API.getenv_to_uint('CLOUDI_API_INIT_BUFFER_SIZE')
47
47
  if protocol == 'tcp'
48
48
  @s = IO.for_fd(thread_index + 3, File::RDWR, autoclose: false)
49
49
  @s.sync = true
@@ -62,7 +62,7 @@ module CloudI
62
62
  end
63
63
  @initialization_complete = false
64
64
  @terminate = false
65
- @size = buffer_size_str.to_i
65
+ @size = buffer_size
66
66
  @callbacks = Hash.new
67
67
  @timeout_terminate = 10 # TIMEOUT_TERMINATE_MIN
68
68
  send(Erlang.term_to_binary(:init))
@@ -80,8 +80,7 @@ module CloudI
80
80
  attr_reader :priority_default
81
81
 
82
82
  def self.thread_count
83
- s = getenv('CLOUDI_API_INIT_THREAD_COUNT')
84
- s.to_i
83
+ return API.getenv_to_uint('CLOUDI_API_INIT_THREAD_COUNT')
85
84
  end
86
85
 
87
86
  def subscribe(pattern, function)
@@ -246,6 +245,26 @@ module CloudI
246
245
  return poll_request(nil, false)
247
246
  end
248
247
 
248
+ def self.process_index_
249
+ return API.getenv_to_uint('CLOUDI_API_INIT_PROCESS_INDEX')
250
+ end
251
+
252
+ def self.process_count_max_
253
+ return API.getenv_to_uint('CLOUDI_API_INIT_PROCESS_COUNT_MAX')
254
+ end
255
+
256
+ def self.process_count_min_
257
+ return API.getenv_to_uint('CLOUDI_API_INIT_PROCESS_COUNT_MIN')
258
+ end
259
+
260
+ def self.timeout_initialize_
261
+ return API.getenv_to_uint('CLOUDI_API_INIT_TIMEOUT_INITIALIZE')
262
+ end
263
+
264
+ def self.timeout_terminate_
265
+ return API.getenv_to_uint('CLOUDI_API_INIT_TIMEOUT_TERMINATE')
266
+ end
267
+
249
268
  def null_response(request_type, name, pattern, request_info, request,
250
269
  timeout, priority, trans_id, source)
251
270
  return ''
@@ -484,8 +503,8 @@ module CloudI
484
503
  @process_count_max = tmp[2]
485
504
  @process_count_min = tmp[3]
486
505
  prefix_size = tmp[4]
487
- i += j; j = prefix_size + 4 + 4 + 4 + 4 + 1 + 1
488
- tmp = data[i, j].unpack("Z#{prefix_size}LLLLcC")
506
+ i += j; j = prefix_size + 4 + 4 + 4 + 4 + 1 + 1 + 4
507
+ tmp = data[i, j].unpack("Z#{prefix_size}LLLLcCl")
489
508
  @prefix = tmp[0]
490
509
  @timeout_initialize = tmp[1]
491
510
  @timeout_async = tmp[2]
@@ -493,6 +512,10 @@ module CloudI
493
512
  @timeout_terminate = tmp[4]
494
513
  @priority_default = tmp[5]
495
514
  @fatal_exceptions = tmp[6]
515
+ bind = tmp[7]
516
+ if bind >= 0 then
517
+ raise InvalidInputException
518
+ end
496
519
  i += j
497
520
  if i != data_size
498
521
  API.assert{external == false}
@@ -780,6 +803,14 @@ module CloudI
780
803
  def self.getenv(key)
781
804
  ENV[key] or raise InvalidInputException
782
805
  end
806
+
807
+ def self.getenv_to_uint(name)
808
+ value = API.getenv(name).to_i
809
+ if value < 0 then
810
+ raise InvalidInputException
811
+ end
812
+ return value
813
+ end
783
814
  end
784
815
 
785
816
  class InvalidInputException < Exception
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudi
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.5
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Truog
@@ -11,30 +11,30 @@ cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUip5VZOKxMDY7Gw5PV5KjDOUB
26
- aPAwIQYDVR0RBBowGIEWbWp0cnVvZ0Bwcm90b25tYWlsLmNvbTAhBgNVHRIEGjAY
27
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- CUaImqpeG21iNKLYHcNZkGfepUpp4FHudbeQeaJj8R5ug+f402l7T4s3JCAOcVIY
35
- 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
36
36
  -----END CERTIFICATE-----
37
- date: 2022-10-12 00:00:00.000000000 Z
37
+ date: 2023-10-26 00:00:00.000000000 Z
38
38
  dependencies:
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: erlang_rb
@@ -45,7 +45,7 @@ dependencies:
45
45
  version: '2.0'
46
46
  - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: 2.0.5
48
+ version: 2.0.7
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
@@ -55,7 +55,7 @@ dependencies:
55
55
  version: '2.0'
56
56
  - - ">="
57
57
  - !ruby/object:Gem::Version
58
- version: 2.0.5
58
+ version: 2.0.7
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: erlang_rb
61
61
  requirement: !ruby/object:Gem::Requirement
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '2.0'
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 2.0.5
68
+ version: 2.0.7
69
69
  type: :development
70
70
  prerelease: false
71
71
  version_requirements: !ruby/object:Gem::Requirement
@@ -75,7 +75,7 @@ dependencies:
75
75
  version: '2.0'
76
76
  - - ">="
77
77
  - !ruby/object:Gem::Version
78
- version: 2.0.5
78
+ version: 2.0.7
79
79
  description: Ruby CloudI API
80
80
  email: mjtruog@protonmail.com
81
81
  executables: []
metadata.gz.sig CHANGED
Binary file