ffi-rzmq 2.0.6 → 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a928273463131d873e875f84cd7c39f8aa6ec6d9c7f20b6c198e4d21667ffc64
4
- data.tar.gz: 53dec07790eee04943cfa797c49802b4b716742bc25541de2b986fa27097a61f
3
+ metadata.gz: 403a3126661f6dc781b72e58f03a2c6b84e38c8d72e9f4b25115c44731aef8e7
4
+ data.tar.gz: 86bd066c1eddd598e67387144e21e45875e2fd79e8a57c6d38c56f04a11b2f19
5
5
  SHA512:
6
- metadata.gz: ec95871653f7db140d7f6f91c6ed42d84e9b88248beefeff7ba5991bf540df92a32be9333a8b0e91826a656f607622c78d9e959729b8d4f2fb75d3d2e502e5fb
7
- data.tar.gz: 2302d47e7c29ce181e143868c33a8b82d55d0b937632b1d7faa3ae07ebe960f8a4a684ce87d82556f0363f7a7201eedb149e1daa403dd60be6c2247dbbaa9246
6
+ metadata.gz: 8704b9f4d77c7a3dba2381dfea0a8cc96604b453c4e042162c0410371bea0207433b8348b954398c5855427e6f4efc8b51a437a7abe4582f4de1d73e42ed17c1
7
+ data.tar.gz: a4df109b2adcc9b18ea2f772bac5d1130b33b7066a8c1160706cc201c0aa08f58acbef56b44c53a9151c38f9bcb553ccb2ede46182bfdaf9d79bccf85a7b4b08
@@ -1,14 +1,14 @@
1
1
  script: ./travis_build_script.sh
2
2
  language: ruby
3
3
  rvm:
4
- - 2.4.0
4
+ - 2.6.0
5
5
  - ruby-head
6
6
  - jruby
7
7
  - jruby-head
8
- - rbx
8
+ - rbx-3
9
9
 
10
10
  matrix:
11
11
  allow_failures:
12
12
  - rvm: ruby-head
13
13
  - rvm: jruby-head
14
- - rvm: rbx
14
+ - rvm: rbx-3
@@ -32,4 +32,6 @@ Paul Chechetin, github: paulche
32
32
 
33
33
  Michael Zaccari, github: mzaccari
34
34
 
35
- Jason Roelofs, github: jasonroelofs
35
+ Jason Roelofs, github: jasonroelofs
36
+
37
+ Cédric Boutillier, github: boutil
@@ -1,3 +1,16 @@
1
+ == 2.0.7
2
+ * Fix Issue #130
3
+ Fix to better support Zeromq 3.x users when performing context termination.
4
+ Support library ffi-rzmq-core was updated to handle this support, so
5
+ we now have a minimum dependency of ffi-rzmq-core 1.0.7 on this gem.
6
+
7
+ * Fix Issue #131
8
+ Update the OpenSSL key and certificate files. Original files were 1024 bits
9
+ but this causes problems on some modern Linux (e.g. Debian) which complains
10
+ about the key length. Updated to 4096 bits. Copied the key and cert
11
+ generation scripts from the Debian repository with attribution. Thanks to
12
+ @boutil for the helper script and the bug report.
13
+
1
14
  == 2.0.6
2
15
  * Fix for uncaught exception. Strange case... somehow calling
3
16
  `zmq_ctx_term` was returning nil, so when checking the result code it
@@ -21,7 +21,7 @@ and run by any ruby runtime that supports FFI. That's all of the major ones - MR
21
21
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
22
22
  s.require_paths = ["lib"]
23
23
 
24
- s.add_runtime_dependency "ffi-rzmq-core", [">= 1.0.6"]
24
+ s.add_runtime_dependency "ffi-rzmq-core", [">= 1.0.7"]
25
25
  s.add_development_dependency "rspec", ["~> 3.7"]
26
26
  s.add_development_dependency "rake"
27
27
  end
@@ -82,7 +82,7 @@ module ZMQ
82
82
  def terminate
83
83
  unless @context.nil? || @context.null?
84
84
  remove_finalizer
85
- rc = LibZMQ.zmq_ctx_term(@context)
85
+ rc = LibZMQ.terminate_context(@context)
86
86
  @context = nil
87
87
  rc || 0
88
88
  else
@@ -1,3 +1,3 @@
1
1
  module ZMQ
2
- VERSION = "2.0.6"
2
+ VERSION = "2.0.7"
3
3
  end
@@ -85,7 +85,7 @@ module ZMQ
85
85
  it "should call the correct library function to terminate the context" do
86
86
  ctx = Context.new
87
87
 
88
- expect(LibZMQ).to receive(:zmq_ctx_term).with(ctx.pointer).and_return(0)
88
+ expect(LibZMQ).to receive(:terminate_context).with(ctx.pointer).and_return(0)
89
89
  ctx.terminate
90
90
  end
91
91
  end # context terminate
@@ -0,0 +1,41 @@
1
+ # Copied from Debian:
2
+ # https://salsa.debian.org/ruby-team/ruby-ffi-rzmq/commit/15ad9dd6f4c3358acbd7db2c7e288aae2d5efcf8
3
+ #
4
+ # Script should be run from the spec/support directory.
5
+ #
6
+
7
+ require "openssl"
8
+
9
+ key = OpenSSL::PKey::RSA.new 4096
10
+
11
+ open 'private_key.pem', 'w' do |io| io.write key.to_pem end
12
+ open 'public_key.pem', 'w' do |io| io.write key.public_key.to_pem end
13
+
14
+
15
+ name = OpenSSL::X509::Name.parse 'CN=nobody/DC=example'
16
+
17
+ cert = OpenSSL::X509::Certificate.new
18
+ cert.version = 2
19
+ cert.serial = 0
20
+ cert.not_before = Time.now
21
+ cert.not_after = Time.now + 3600*24*365*10
22
+
23
+ cert.public_key = key.public_key
24
+ cert.subject = name
25
+ cert.issuer = name
26
+
27
+ extension_factory = OpenSSL::X509::ExtensionFactory.new
28
+ extension_factory.subject_certificate = cert
29
+ extension_factory.issuer_certificate = cert
30
+
31
+ cert.add_extension \
32
+ extension_factory.create_extension('subjectKeyIdentifier', 'hash')
33
+ cert.sign key, OpenSSL::Digest::SHA1.new
34
+ open 'ca.pem', 'w' do |io|
35
+ io.write cert.to_pem
36
+ end
37
+
38
+ require 'fileutils'
39
+
40
+ FileUtils.cp 'ca.pem', 'test.crt'
41
+ FileUtils.cp 'private_key.pem', 'test.key'
@@ -1,15 +1,28 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIICRzCCAbCgAwIBAgIJAIhPfXaKAijbMA0GCSqGSIb3DQEBBQUAMCIxCzAJBgNV
3
- BAYTAlhZMRMwEQYDVQQIEwpOZXJ2ZXJsYW5kMB4XDTEyMDgyODE2NDIzMloXDTEz
4
- MDgyODE2NDIzMlowIjELMAkGA1UEBhMCWFkxEzARBgNVBAgTCk5lcnZlcmxhbmQw
5
- gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPTe1/MFg4gGjB5Kx/XzP5HQys2k
6
- R+X7+h+cG7jz9p8mNiW/G54WQX7z4EzLrSFrNdXhe6NRXzqcVtyNl9NPh4QpPpOi
7
- ddOjNWworai6d7NShK4gFzL62qY5gSsZ4TYLxfSDEy6Zggy0fFFu8C7iHJVo/1kY
8
- A1OxikDkbfHX0rW3AgMBAAGjgYQwgYEwHQYDVR0OBBYEFEbSBVWuzrSmust9Sa6J
9
- sm7Tg40KMFIGA1UdIwRLMEmAFEbSBVWuzrSmust9Sa6Jsm7Tg40KoSakJDAiMQsw
10
- CQYDVQQGEwJYWTETMBEGA1UECBMKTmVydmVybGFuZIIJAIhPfXaKAijbMAwGA1Ud
11
- EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAS0+17FjKmjCPHfJApTZgVXGD/LHC
12
- Bdzo+bl/hWpMyF27CUJxdZOMRpHqpE/Qv77jG/tfHnuArYPwDcB8AIErmvhNKCZx
13
- GLm19kTd4K1Y5JcAqkOHBma1e1V/g4ryWvUtpQkqD6tQxX0ctlBmXXK/Jsj/wG0W
14
- NNCQq2S19aNZcGo=
2
+ MIIE1DCCArygAwIBAgIBADANBgkqhkiG9w0BAQUFADAcMRowGAYDVQQDDBFub2Jv
3
+ ZHkvREM9ZXhhbXBsZTAeFw0xOTAxMDUxNjAxMThaFw0yOTAxMDIxNjAxMThaMBwx
4
+ GjAYBgNVBAMMEW5vYm9keS9EQz1leGFtcGxlMIICIjANBgkqhkiG9w0BAQEFAAOC
5
+ Ag8AMIICCgKCAgEA5oQhrlSbC9UjEihMsnoF4JFk38HVOkiVRRtLr+UWBYEXI5Xt
6
+ aKXoz1OFgZuVUQWuNrZ7HKaSGzZUSlp1AKx9svLzlCrDP4q/s31ZYE3fnAOvbEVH
7
+ +Xfns1gLYhSZEbYIzv5waW3hFLXQmZMSgvU6XB2cO7vZivTzjhvhPwkkIY5G23Ta
8
+ 20hemZKd7cKI+ricyTeg7eQ3QoNmCbSDvcAz/CiePX4qYwKfE6wBEcKRPB2F2LfW
9
+ U3V8oNdAY2otSXOKLvxXgqsMaUUo/+TZAdOAdCG1bhInV2z30KbtjYuoldN6Qpml
10
+ v+jmzlTkEIg2JO0VwkSrkI3F7UBz/sNFj1xYx8KY76KsfFQ7TyCMMuJJ8WC58Q9J
11
+ +tz/tx2uLxWU/hFjc7OPJ2lL4pNxAi3r6D5KYHQOplLGGB9x5F2ulkjo0Ea4CUR5
12
+ 2yh8mxHSTrETjLzV+Z6bjbqL178Kfelvpd0ZjuqvrUBXDdj6t+VglICw78bX+GQR
13
+ QpCzl4n65A1WZYJSQzccGKlipgfypEMalv3QLZxyJe1w8xtkuB+rBGb3m5c6xSok
14
+ K4q11szlBS7lN439oY5NEKULRUyMqt++0y/l7bWsGmJpl5I03HA044cYXGm4WwCE
15
+ Ldp+geNAF6DP1vIcrvCJSzJZX78NaxSHQ8WFvTt+W9WnMnmiQnAjBk8TP88CAwEA
16
+ AaMhMB8wHQYDVR0OBBYEFFY+V2zaAFjUn9dZHWzXOzmR6GoIMA0GCSqGSIb3DQEB
17
+ BQUAA4ICAQBO2snAHYhn0lwSpp6rql1VUJexndMhTdDMpYV+VAyqGsVsmq3iD2aC
18
+ O9CWtyGRfiK3AsxjCIQjP/n19YzYoxs6/eSCWnpMd4WlL+W2Nkgj/2fUdvV3qM7Y
19
+ dv+jd5ov1Dxoz/nUbhxXozMd7V7k0EdqpjObp8sED/eO3niuSfbGO6Ef2DwjqOWK
20
+ ukLMO7l67sAcHH1tW8fbvSPpVZ8NJdJx6Q5C+/lTDpDQP7OlRjXe5T7h4fl1OOEZ
21
+ hCpW+Hq3Jf/uqH9zbjynVncqgd6PkO2BCuD9P+aDBZ6no5+3jebTlx+OHndrgXgH
22
+ 9QN0ifiQGMcBYh4Iv0JQgSiW8dGzYuP8BsxJ3fOWGW9wZAelvI3lS9Yii6GVH44D
23
+ QdhQlYwpoiZq1A2kOzsKy86nejRpeQg965ddNLw1yNMJO9yL1FtmwEiF9VLvhdTd
24
+ gh92imoxNtOyBiGvqn537+ZrQmQPU8OM0zySI9+mhC6E7ASTVquGUC5bCHSjavVR
25
+ AaeQoXQp0NwqoO6Qw9QIAVRaW0cPw3lnIZLGk++XHuWkrgkqdQMcKit80oiGZ+Bq
26
+ usfXTVeXMoYjw2MJ+RRxkePD4FXCulErG10Dqga36zMTrq1UqbVDVMjkO2OAbypW
27
+ Z5PCmTr1vgYgzSHr/bx833wWP/8KyClU78YF4nZSmAgywXfSjo2rpA==
15
28
  -----END CERTIFICATE-----
@@ -1,15 +1,51 @@
1
1
  -----BEGIN RSA PRIVATE KEY-----
2
- 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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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
- 88J6IhSp30F/tUtTGRl2UyszXLXbAAxpC08CQCwQTFVPOPlHKTeupRDSvoMZNbnV
11
- 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
- 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
- 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
- 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
15
51
  -----END RSA PRIVATE KEY-----
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi-rzmq
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.6
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chuck Remes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-22 00:00:00.000000000 Z
11
+ date: 2019-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi-rzmq-core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.6
19
+ version: 1.0.7
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 1.0.6
26
+ version: 1.0.7
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -109,6 +109,7 @@ files:
109
109
  - spec/reqrep_spec.rb
110
110
  - spec/socket_spec.rb
111
111
  - spec/spec_helper.rb
112
+ - spec/support/generate_keys_and_certs.rb
112
113
  - spec/support/test.crt
113
114
  - spec/support/test.key
114
115
  - spec/util_spec.rb
@@ -149,6 +150,7 @@ test_files:
149
150
  - spec/reqrep_spec.rb
150
151
  - spec/socket_spec.rb
151
152
  - spec/spec_helper.rb
153
+ - spec/support/generate_keys_and_certs.rb
152
154
  - spec/support/test.crt
153
155
  - spec/support/test.key
154
156
  - spec/util_spec.rb