airbrake 3.0.6 → 3.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.
- data/CHANGELOG +7 -0
- data/Rakefile +3 -1
- data/lib/airbrake/configuration.rb +6 -2
- data/lib/airbrake/sender.rb +33 -11
- data/lib/airbrake/version.rb +1 -1
- data/test/sender_test.rb +11 -1
- metadata +4 -4
data/CHANGELOG
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
Version 3.0.7 - Sun Dec 11 21:04:08 +0100 2011
|
2
|
+
===============================================================================
|
3
|
+
|
4
|
+
David Palm (1):
|
5
|
+
Adds a :use_system_ssl_cert_chain configuration option to allow use of the system default SSL chain (as opposed to the CAs bundled with Airbrake) - defaults to false
|
6
|
+
|
1
7
|
Version 3.0.6 - Mon Dec 05 16:41:39 +0100 2011
|
2
8
|
===============================================================================
|
3
9
|
|
@@ -611,3 +617,4 @@ Nick Quaranto (3):
|
|
611
617
|
|
612
618
|
|
613
619
|
|
620
|
+
|
data/Rakefile
CHANGED
@@ -155,7 +155,9 @@ def run_rails_cucumbr_task(version, additional_cucumber_args)
|
|
155
155
|
raise "No Rails version specified - make sure ENV['RAILS_VERSION'] is set, e.g. with `rake cucumber:rails:all`"
|
156
156
|
end
|
157
157
|
ENV['RAILS_VERSION'] = version
|
158
|
-
|
158
|
+
cmd = "cucumber --format #{ENV['CUCUMBER_FORMAT'] || 'progress'} #{additional_cucumber_args} features/rails.feature features/rails_with_js_notifier.feature"
|
159
|
+
puts "Running command: #{cmd}"
|
160
|
+
system(cmd)
|
159
161
|
end
|
160
162
|
|
161
163
|
def define_rails_cucumber_tasks(additional_cucumber_args = '')
|
@@ -7,8 +7,8 @@ module Airbrake
|
|
7
7
|
:http_open_timeout, :http_read_timeout, :ignore, :ignore_by_filters,
|
8
8
|
:ignore_user_agent, :notifier_name, :notifier_url, :notifier_version,
|
9
9
|
:params_filters, :project_root, :port, :protocol, :proxy_host,
|
10
|
-
:proxy_pass, :proxy_port, :proxy_user, :secure, :
|
11
|
-
:user_information, :rescue_rake_exceptions].freeze
|
10
|
+
:proxy_pass, :proxy_port, :proxy_user, :secure, :use_system_ssl_cert_chain,
|
11
|
+
:framework, :user_information, :rescue_rake_exceptions].freeze
|
12
12
|
|
13
13
|
# The API key for your project, found on the project edit form.
|
14
14
|
attr_accessor :api_key
|
@@ -22,6 +22,9 @@ module Airbrake
|
|
22
22
|
|
23
23
|
# +true+ for https connections, +false+ for http connections.
|
24
24
|
attr_accessor :secure
|
25
|
+
|
26
|
+
# +true+ to use whatever CAs OpenSSL has installed on your system. +false+ to use the ca-bundle.crt file included in Airbrake itself (reccomended and default)
|
27
|
+
attr_accessor :use_system_ssl_cert_chain
|
25
28
|
|
26
29
|
# The HTTP open timeout in seconds (defaults to 2).
|
27
30
|
attr_accessor :http_open_timeout
|
@@ -123,6 +126,7 @@ module Airbrake
|
|
123
126
|
|
124
127
|
def initialize
|
125
128
|
@secure = false
|
129
|
+
@use_system_ssl_cert_chain= false
|
126
130
|
@host = 'airbrake.io'
|
127
131
|
@http_open_timeout = 2
|
128
132
|
@http_read_timeout = 5
|
data/lib/airbrake/sender.rb
CHANGED
@@ -13,8 +13,18 @@ module Airbrake
|
|
13
13
|
Errno::ECONNREFUSED].freeze
|
14
14
|
|
15
15
|
def initialize(options = {})
|
16
|
-
[:proxy_host,
|
17
|
-
:
|
16
|
+
[ :proxy_host,
|
17
|
+
:proxy_port,
|
18
|
+
:proxy_user,
|
19
|
+
:proxy_pass,
|
20
|
+
:protocol,
|
21
|
+
:host,
|
22
|
+
:port,
|
23
|
+
:secure,
|
24
|
+
:use_system_ssl_cert_chain,
|
25
|
+
:http_open_timeout,
|
26
|
+
:http_read_timeout
|
27
|
+
].each do |option|
|
18
28
|
instance_variable_set("@#{option}", options[option])
|
19
29
|
end
|
20
30
|
end
|
@@ -55,10 +65,22 @@ module Airbrake
|
|
55
65
|
File.expand_path(File.join("..", "..", "..", "resources", "ca-bundle.crt"), __FILE__)
|
56
66
|
end
|
57
67
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
68
|
+
attr_reader :proxy_host,
|
69
|
+
:proxy_port,
|
70
|
+
:proxy_user,
|
71
|
+
:proxy_pass,
|
72
|
+
:protocol,
|
73
|
+
:host,
|
74
|
+
:port,
|
75
|
+
:secure,
|
76
|
+
:use_system_ssl_cert_chain,
|
77
|
+
:http_open_timeout,
|
78
|
+
:http_read_timeout
|
79
|
+
|
80
|
+
alias_method :secure?, :secure
|
81
|
+
alias_method :use_system_ssl_cert_chain?, :use_system_ssl_cert_chain
|
82
|
+
|
83
|
+
private
|
62
84
|
|
63
85
|
def url
|
64
86
|
URI.parse("#{protocol}://#{host}:#{port}").merge(NOTICES_URI)
|
@@ -82,13 +104,13 @@ module Airbrake
|
|
82
104
|
http.read_timeout = http_read_timeout
|
83
105
|
http.open_timeout = http_open_timeout
|
84
106
|
|
85
|
-
if secure
|
107
|
+
if secure?
|
86
108
|
http.use_ssl = true
|
109
|
+
|
87
110
|
if File.exist?(OpenSSL::X509::DEFAULT_CERT_FILE)
|
88
|
-
http.ca_file = OpenSSL::X509::DEFAULT_CERT_FILE
|
89
|
-
|
90
|
-
# ca-bundle.crt built from source, see resources/README.md
|
91
|
-
http.ca_file = Sender.local_cert_path
|
111
|
+
http.ca_file = OpenSSL::X509::DEFAULT_CERT_FILE
|
112
|
+
elsif !use_system_ssl_cert_chain?
|
113
|
+
http.ca_file = Sender.local_cert_path # ca-bundle.crt built from source, see resources/README.md
|
92
114
|
end
|
93
115
|
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
94
116
|
else
|
data/lib/airbrake/version.rb
CHANGED
data/test/sender_test.rb
CHANGED
@@ -9,7 +9,7 @@ class SenderTest < Test::Unit::TestCase
|
|
9
9
|
def build_sender(opts = {})
|
10
10
|
config = Airbrake::Configuration.new
|
11
11
|
opts.each {|opt, value| config.send(:"#{opt}=", value) }
|
12
|
-
Airbrake::Sender.new(config)
|
12
|
+
sender = Airbrake::Sender.new(config)
|
13
13
|
end
|
14
14
|
|
15
15
|
def send_exception(args = {})
|
@@ -173,6 +173,16 @@ class SenderTest < Test::Unit::TestCase
|
|
173
173
|
assert_equal(OpenSSL::SSL::VERIFY_PEER, real_http.verify_mode)
|
174
174
|
assert_equal(Airbrake::Sender.local_cert_path, real_http.ca_file)
|
175
175
|
end
|
176
|
+
|
177
|
+
should "use the system CAs if asked to" do
|
178
|
+
config = Airbrake::Configuration.new(:use_system_ssl_cert_chain => true)
|
179
|
+
sender = Airbrake::Sender.new(config)
|
180
|
+
|
181
|
+
assert(sender.use_system_ssl_cert_chain?)
|
182
|
+
|
183
|
+
http = sender.send(:setup_http_connection)
|
184
|
+
assert_not_equal http.ca_file, Airbrake::Sender.local_cert_path
|
185
|
+
end
|
176
186
|
|
177
187
|
should "verify the SSL peer when the use_ssl option is set to true and the default cert exists" do
|
178
188
|
url = "https://airbrake.io#{Airbrake::Sender::NOTICES_URI}"
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: airbrake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 3.0.
|
9
|
+
- 7
|
10
|
+
version: 3.0.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- thoughtbot, inc
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-12-
|
18
|
+
date: 2011-12-11 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: builder
|