minhttp 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
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