cloudi 2.0.5 → 2.0.7

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.
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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
- dW9nL0RDPXByb3Rvbm1haWwvREM9Y29tMB4XDTIyMTAxMjIwMDU0MloXDTIzMTAx
15
- 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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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
- 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
- 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
- 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
- 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
- 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
- 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
- K+77PgOz8oMDmzrQlCx1FDWhgNqsImrLYcca7kcoINTasLWmvfz1xaBeP4MdCk0R
34
- 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
- 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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