mongo 2.0.1 → 2.0.2
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/mongo/auth/scram/conversation.rb +1 -0
- data/lib/mongo/operation/write/idable.rb +1 -1
- data/lib/mongo/protocol/query.rb +5 -1
- data/lib/mongo/socket.rb +8 -4
- data/lib/mongo/socket/ssl.rb +1 -4
- data/lib/mongo/version.rb +1 -1
- data/spec/mongo/socket/ssl_spec.rb +47 -0
- data/spec/spec_helper.rb +10 -0
- data/spec/{certificates → support/certificates}/ca.pem +0 -0
- data/spec/{certificates → support/certificates}/client.pem +0 -0
- data/spec/{certificates → support/certificates}/crl.pem +0 -0
- data/spec/{certificates → support/certificates}/crl_client_revoked.pem +0 -0
- data/spec/{certificates → support/certificates}/password_protected.pem +0 -0
- data/spec/{certificates → support/certificates}/server.pem +0 -0
- metadata +17 -15
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: efe6bb7e6b47adaa8d2552af028e6c77510659ec
|
4
|
+
data.tar.gz: fcf01b4299f65ab1b0604f7c6ad5be3f470774cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84f370d047ea3d27dd06940145be29bc2d6655b1b9676be732010a1d13d17f1fb5f86be35ba47e6a7b2c122dd2fadf02f0d4e37334f0f2446fa66da09d91e68e
|
7
|
+
data.tar.gz: 84902c053cf3394d8b821e4b6e4ada9906010f4221015e86a14ae1897d9c1be7c772c0848a19aabcc7446b1032e6e23f54475f96418dda607bead0143dc1e9fd
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/mongo/protocol/query.rb
CHANGED
@@ -76,7 +76,7 @@ module Mongo
|
|
76
76
|
# @since 2.0.0
|
77
77
|
def log_message
|
78
78
|
fields = []
|
79
|
-
fields << ["%s |",
|
79
|
+
fields << ["%s |", query_type]
|
80
80
|
fields << ["namespace=%s", namespace]
|
81
81
|
fields << ["selector=%s", selector.inspect]
|
82
82
|
fields << ["flags=%s", flags.inspect]
|
@@ -107,6 +107,10 @@ module Mongo
|
|
107
107
|
2004
|
108
108
|
end
|
109
109
|
|
110
|
+
def query_type
|
111
|
+
namespace.include?(Database::COMMAND) ? 'COMMAND' : 'QUERY'
|
112
|
+
end
|
113
|
+
|
110
114
|
# Available flags for a Query message.
|
111
115
|
FLAGS = [
|
112
116
|
:reserved,
|
data/lib/mongo/socket.rb
CHANGED
@@ -103,10 +103,7 @@ module Mongo
|
|
103
103
|
def initialize(family)
|
104
104
|
@family = family
|
105
105
|
@socket = ::Socket.new(family, SOCK_STREAM, 0)
|
106
|
-
|
107
|
-
socket.set_encoding(BSON::BINARY)
|
108
|
-
socket.setsockopt(SOL_SOCKET, SO_RCVTIMEO, encoded_timeout)
|
109
|
-
socket.setsockopt(SOL_SOCKET, SO_SNDTIMEO, encoded_timeout)
|
106
|
+
set_socket_options(@socket)
|
110
107
|
end
|
111
108
|
|
112
109
|
# Will read all data from the socket for the provided number of bytes.
|
@@ -164,6 +161,13 @@ module Mongo
|
|
164
161
|
socket.read(length) || String.new
|
165
162
|
end
|
166
163
|
|
164
|
+
def set_socket_options(sock)
|
165
|
+
encoded_timeout = [ timeout, 0 ].pack(TIMEOUT_PACK)
|
166
|
+
sock.set_encoding(BSON::BINARY)
|
167
|
+
sock.setsockopt(SOL_SOCKET, SO_RCVTIMEO, encoded_timeout)
|
168
|
+
sock.setsockopt(SOL_SOCKET, SO_SNDTIMEO, encoded_timeout)
|
169
|
+
end
|
170
|
+
|
167
171
|
def handle_errors
|
168
172
|
begin
|
169
173
|
yield
|
data/lib/mongo/socket/ssl.rb
CHANGED
@@ -78,10 +78,7 @@ module Mongo
|
|
78
78
|
@family = family
|
79
79
|
@tcp_socket = ::Socket.new(family, SOCK_STREAM, 0)
|
80
80
|
@tcp_socket.setsockopt(IPPROTO_TCP, TCP_NODELAY, 1)
|
81
|
-
|
82
|
-
@tcp_socket.set_encoding(BSON::BINARY)
|
83
|
-
@tcp_socket.setsockopt(SOL_SOCKET, SO_RCVTIMEO, encoded_timeout)
|
84
|
-
@tcp_socket.setsockopt(SOL_SOCKET, SO_SNDTIMEO, encoded_timeout)
|
81
|
+
set_socket_options(@tcp_socket)
|
85
82
|
end
|
86
83
|
|
87
84
|
# Read a single byte from the socket.
|
data/lib/mongo/version.rb
CHANGED
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mongo::Socket::SSL do
|
4
|
+
|
5
|
+
describe '#connect!', if: running_ssl? do
|
6
|
+
|
7
|
+
let(:socket) do
|
8
|
+
described_class.new('localhost', 27017, 5, Socket::PF_INET, options)
|
9
|
+
end
|
10
|
+
|
11
|
+
context 'when a certificate is provided' do
|
12
|
+
|
13
|
+
let(:options) do
|
14
|
+
{
|
15
|
+
:ssl => true,
|
16
|
+
:ssl_cert => CLIENT_PEM,
|
17
|
+
:ssl_key => CLIENT_PEM
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
before do
|
22
|
+
socket.connect!
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'connects to the server' do
|
26
|
+
expect(socket).to be_alive
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'when a bad certificate is provided' do
|
31
|
+
|
32
|
+
let(:options) do
|
33
|
+
{
|
34
|
+
:ssl => true,
|
35
|
+
:ssl_cert => CLIENT_PEM,
|
36
|
+
:ssl_key => CRL_PEM
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'raises an exception' do
|
41
|
+
expect {
|
42
|
+
socket.connect!
|
43
|
+
}.to raise_error
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -69,6 +69,12 @@ SERVER_SELECTION_RTT_TESTS = Dir.glob("#{CURRENT_PATH}/support/server_selection/
|
|
69
69
|
SERVER_SELECTION_TESTS = Dir.glob("#{CURRENT_PATH}/support/server_selection/selection/**/*.yml")
|
70
70
|
CRUD_TESTS = Dir.glob("#{CURRENT_PATH}/support/crud_tests/**/*.yml")
|
71
71
|
|
72
|
+
SSL_CERTS_DIR = "#{CURRENT_PATH}/support/certificates"
|
73
|
+
CLIENT_PEM = "#{SSL_CERTS_DIR}/client.pem"
|
74
|
+
CLIENT_PASSWORD_PEM = "#{SSL_CERTS_DIR}/password_protected.pem"
|
75
|
+
CA_PEM = "#{SSL_CERTS_DIR}/ca.pem"
|
76
|
+
CRL_PEM = "#{SSL_CERTS_DIR}/crl.pem"
|
77
|
+
|
72
78
|
# Determine whether the test clients are connecting to a standlone.
|
73
79
|
#
|
74
80
|
# @since 2.0.0
|
@@ -111,6 +117,10 @@ def list_command_enabled?
|
|
111
117
|
$list_command_enabled ||= $mongo_client.cluster.servers.first.features.list_indexes_enabled?
|
112
118
|
end
|
113
119
|
|
120
|
+
def running_ssl?
|
121
|
+
!!ENV['SSL']
|
122
|
+
end
|
123
|
+
|
114
124
|
alias :scram_sha_1_enabled? :list_command_enabled?
|
115
125
|
|
116
126
|
# Depending on whether write commands are enabled, there are different documents that
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tyler Brock
|
@@ -32,7 +32,7 @@ cert_chain:
|
|
32
32
|
o2UXDbWtz5PqoFd8EgNJAn3+BG1pwC9S9pVFG3WPucfAx/bE8iq/vvchHei5Y/Vo
|
33
33
|
aAz5f/hY4zFeYWvGDBHYEXE1rTN2hhMSyJscPcFbmz0=
|
34
34
|
-----END CERTIFICATE-----
|
35
|
-
date: 2015-03-
|
35
|
+
date: 2015-03-31 00:00:00.000000000 Z
|
36
36
|
dependencies:
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: bson
|
@@ -237,12 +237,6 @@ files:
|
|
237
237
|
- lib/mongo/write_concern/normalizable.rb
|
238
238
|
- lib/mongo/write_concern/unacknowledged.rb
|
239
239
|
- mongo.gemspec
|
240
|
-
- spec/certificates/ca.pem
|
241
|
-
- spec/certificates/client.pem
|
242
|
-
- spec/certificates/crl.pem
|
243
|
-
- spec/certificates/crl_client_revoked.pem
|
244
|
-
- spec/certificates/password_protected.pem
|
245
|
-
- spec/certificates/server.pem
|
246
240
|
- spec/mongo/address/ipv4_spec.rb
|
247
241
|
- spec/mongo/address/ipv6_spec.rb
|
248
242
|
- spec/mongo/address/unix_spec.rb
|
@@ -334,11 +328,18 @@ files:
|
|
334
328
|
- spec/mongo/server_selector/secondary_spec.rb
|
335
329
|
- spec/mongo/server_selector_spec.rb
|
336
330
|
- spec/mongo/server_spec.rb
|
331
|
+
- spec/mongo/socket/ssl_spec.rb
|
337
332
|
- spec/mongo/uri_spec.rb
|
338
333
|
- spec/mongo/write_concern/acknowledged_spec.rb
|
339
334
|
- spec/mongo/write_concern/unacknowledged_spec.rb
|
340
335
|
- spec/spec_helper.rb
|
341
336
|
- spec/support/authorization.rb
|
337
|
+
- spec/support/certificates/ca.pem
|
338
|
+
- spec/support/certificates/client.pem
|
339
|
+
- spec/support/certificates/crl.pem
|
340
|
+
- spec/support/certificates/crl_client_revoked.pem
|
341
|
+
- spec/support/certificates/password_protected.pem
|
342
|
+
- spec/support/certificates/server.pem
|
342
343
|
- spec/support/crud.rb
|
343
344
|
- spec/support/crud/read.rb
|
344
345
|
- spec/support/crud/write.rb
|
@@ -453,17 +454,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
453
454
|
version: '0'
|
454
455
|
requirements: []
|
455
456
|
rubyforge_project: mongo
|
456
|
-
rubygems_version: 2.
|
457
|
+
rubygems_version: 2.4.6
|
457
458
|
signing_key:
|
458
459
|
specification_version: 4
|
459
460
|
summary: Ruby driver for MongoDB
|
460
461
|
test_files:
|
461
|
-
- spec/certificates/ca.pem
|
462
|
-
- spec/certificates/client.pem
|
463
|
-
- spec/certificates/crl.pem
|
464
|
-
- spec/certificates/crl_client_revoked.pem
|
465
|
-
- spec/certificates/password_protected.pem
|
466
|
-
- spec/certificates/server.pem
|
467
462
|
- spec/mongo/address/ipv4_spec.rb
|
468
463
|
- spec/mongo/address/ipv6_spec.rb
|
469
464
|
- spec/mongo/address/unix_spec.rb
|
@@ -555,11 +550,18 @@ test_files:
|
|
555
550
|
- spec/mongo/server_selector/secondary_spec.rb
|
556
551
|
- spec/mongo/server_selector_spec.rb
|
557
552
|
- spec/mongo/server_spec.rb
|
553
|
+
- spec/mongo/socket/ssl_spec.rb
|
558
554
|
- spec/mongo/uri_spec.rb
|
559
555
|
- spec/mongo/write_concern/acknowledged_spec.rb
|
560
556
|
- spec/mongo/write_concern/unacknowledged_spec.rb
|
561
557
|
- spec/spec_helper.rb
|
562
558
|
- spec/support/authorization.rb
|
559
|
+
- spec/support/certificates/ca.pem
|
560
|
+
- spec/support/certificates/client.pem
|
561
|
+
- spec/support/certificates/crl.pem
|
562
|
+
- spec/support/certificates/crl_client_revoked.pem
|
563
|
+
- spec/support/certificates/password_protected.pem
|
564
|
+
- spec/support/certificates/server.pem
|
563
565
|
- spec/support/crud/read.rb
|
564
566
|
- spec/support/crud/write.rb
|
565
567
|
- spec/support/crud.rb
|
metadata.gz.sig
CHANGED
Binary file
|