minhttp 0.0.7 → 0.0.8

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 (3) hide show
  1. data/VERSION +1 -1
  2. data/lib/minhttp.rb +13 -1
  3. metadata +40 -65
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.7
1
+ 0.0.8
data/lib/minhttp.rb CHANGED
@@ -20,6 +20,7 @@ module Http
20
20
 
21
21
  def self.configure(options={})
22
22
  @@options = options
23
+ @@options[:ssl_whitelist] ||= []
23
24
  @@logger = options[:logger] || Logger.new(STDOUT)
24
25
  @@connections = 0
25
26
  Http::SSLValidator.configure(options[:ssl_logger])
@@ -107,7 +108,7 @@ module Http
107
108
  #
108
109
  def ssl_handshake_completed
109
110
  begin
110
- return unless @@options[:verify_ssl]
111
+ return unless ssl_verification_enabled?(@host)
111
112
  close_connection unless Http::SSLValidator.validate(@certs, @host)
112
113
  rescue Exception => e
113
114
  @@logger.error("Error in ssl_handshake_completed: #{e}")
@@ -115,5 +116,16 @@ module Http
115
116
  end
116
117
  end
117
118
 
119
+ #
120
+ # SSL verification is only on if the 'verify_ssl' option is set and
121
+ # if the host is not on the whitelist
122
+ #
123
+ def ssl_verification_enabled?(host)
124
+ return false unless @@options[:verify_ssl]
125
+ # the ssl_whitelist is an array of regular expressions
126
+ return false if @@options[:ssl_whitelist].find { |r| host =~ r }
127
+ return true
128
+ end
129
+
118
130
  end
119
131
  end
metadata CHANGED
@@ -1,61 +1,46 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: minhttp
3
- version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 7
10
- version: 0.0.7
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.8
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Andrew Farmer
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-06-03 00:00:00 -07:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2011-07-01 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: http_parser.rb
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &13044100 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: eventmachine
37
23
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *13044100
25
+ - !ruby/object:Gem::Dependency
26
+ name: eventmachine
27
+ requirement: &13043560 !ruby/object:Gem::Requirement
39
28
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
47
33
  type: :runtime
48
- version_requirements: *id002
49
- description: MinHTTP allows one to send and receive raw HTTP requests. It's a very thin wrapper around EventMachine's connect method with some SSL validation added.
50
- email:
34
+ prerelease: false
35
+ version_requirements: *13043560
36
+ description: MinHTTP allows one to send and receive raw HTTP requests. It's a very
37
+ thin wrapper around EventMachine's connect method with some SSL validation added.
38
+ email:
51
39
  - ahfarmer@gmail.com
52
40
  executables: []
53
-
54
41
  extensions: []
55
-
56
42
  extra_rdoc_files: []
57
-
58
- files:
43
+ files:
59
44
  - README.md
60
45
  - VERSION
61
46
  - Gemfile
@@ -70,40 +55,30 @@ files:
70
55
  - lib/rawparser.rb~
71
56
  - test/simple_test.rb~
72
57
  - test/simple_test.rb
73
- has_rdoc: true
74
58
  homepage: http://github.com/ahfarmer/minhttp
75
59
  licenses: []
76
-
77
60
  post_install_message:
78
61
  rdoc_options: []
79
-
80
- require_paths:
62
+ require_paths:
81
63
  - lib
82
- required_ruby_version: !ruby/object:Gem::Requirement
64
+ required_ruby_version: !ruby/object:Gem::Requirement
83
65
  none: false
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- hash: 3
88
- segments:
89
- - 0
90
- version: "0"
91
- required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ required_rubygems_version: !ruby/object:Gem::Requirement
92
71
  none: false
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- hash: 3
97
- segments:
98
- - 0
99
- version: "0"
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
100
76
  requirements: []
101
-
102
77
  rubyforge_project: minhttp
103
- rubygems_version: 1.3.7
78
+ rubygems_version: 1.8.5
104
79
  signing_key:
105
80
  specification_version: 3
106
81
  summary: An HTTP library for the minimalist.
107
- test_files:
82
+ test_files:
108
83
  - test/simple_test.rb~
109
84
  - test/simple_test.rb