stubby 0.0.5 → 0.0.6

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.
@@ -41,7 +41,10 @@ module Extensions
41
41
  set :static, false
42
42
 
43
43
  adapter "http-redirect" do
44
- redirect to(instruction_params["to"])
44
+ r = URI.parse(instruction_params["to"])
45
+ r.path = request.path if r.path.blank?
46
+
47
+ redirect to(r.to_s)
45
48
  end
46
49
 
47
50
  adapter "file" do
@@ -68,14 +71,11 @@ module Extensions
68
71
  end
69
72
 
70
73
  adapter "http-proxy" do
71
- url.scheme = "http"
72
- run_proxy
73
-
74
+ run_proxy("http")
74
75
  end
75
76
 
76
77
  adapter "https-proxy" do
77
- url.scheme = "https"
78
- run_proxy
78
+ run_proxy("https")
79
79
  end
80
80
 
81
81
  %w(get post put patch delete options link unlink).each do |method|
@@ -95,23 +95,25 @@ module Extensions
95
95
  end
96
96
  end
97
97
 
98
- def run_proxy
99
- if url.path.empty?
100
- # Proxy all requests, preserve incoming path
101
- out = url.dup
102
- out.path = request.path
103
- r = HTTPI::Request.new
104
- r.url = out.to_s
105
- else
106
- # Proxy to the given path
107
- r = HTTPI::Request.new
108
- r.url = url.to_s
109
- end
98
+ def run_proxy(scheme)
99
+ to = url.dup
100
+ to.scheme = scheme
101
+ to.path = request.path if to.path.empty?
102
+ to.query = request.query_string
110
103
 
104
+ puts "#{to.to_s} scheme: #{request.scheme}"
105
+
106
+ r = HTTPI::Request.new
107
+ r.url = to.to_s
108
+
109
+ r.headers["HOST"] = request.host
111
110
  r.headers["STUBBY_ENV"] = settings.stubby_session.environment
112
111
  r.headers["STUBBY_KEY"] = settings.stubby_session.key(instruction)
113
112
  r.headers["STUBBY_USER"] = settings.stubby_session.user_key
114
-
113
+ r.headers["X_FORWARDED_PROTO"] = request.scheme
114
+ r.headers["X_FORWARDED_FOR"] = request.ip
115
+ r.headers.merge! Hash[(env.select { |k,v| v.is_a? String }.collect { |k,v| [k.gsub("HTTP_", ""), v] })]
116
+ r.headers["CONNECTION"] = "close"
115
117
  request.body.rewind
116
118
  r.body = request.body.read
117
119
 
@@ -120,6 +122,8 @@ module Extensions
120
122
  response.headers.delete "connection"
121
123
 
122
124
  status(response.code)
125
+ puts "response: #{response.headers}"
126
+
123
127
  headers(response.headers)
124
128
  body(response.body)
125
129
  end
@@ -160,11 +164,6 @@ module Extensions
160
164
  set :port, port
161
165
  set :stubby_session, session
162
166
 
163
- #super(session, {
164
- # :SSLEnable => true,
165
- # :SSLCertName => %w[CN localhost]
166
- #})
167
-
168
167
  Rack::Handler::Thin.run(self, {
169
168
  :Host => STUBBY_MASTER,
170
169
  :Port => 443
@@ -12,18 +12,22 @@ module Extensions
12
12
  HTTPI.post("http://#{STUBBY_MASTER}:9000/stubs/transient/activate.json",
13
13
  options: MultiJson.dump(smtp_stub), key: "_smtp")
14
14
 
15
- MailCatcher.run! smtp_ip: STUBBY_MASTER,
16
- smtp_port: 25,
17
- http_ip: STUBBY_MASTER,
18
- http_port: 9001,
19
- daemon: false
15
+ while true
16
+ begin
17
+ MailCatcher.run! smtp_ip: STUBBY_MASTER,
18
+ smtp_port: 25,
19
+ http_ip: STUBBY_MASTER,
20
+ http_port: 9001,
21
+ daemon: false
22
+ rescue
23
+ puts $!
24
+ end
25
+ end
20
26
  }
21
27
 
22
28
  trap("INT", important: true){
23
29
  stop!
24
30
  }
25
-
26
- sleep
27
31
  end
28
32
 
29
33
  def smtp_stub
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stubby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-02-27 00:00:00.000000000 Z
13
+ date: 2014-03-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rubydns