Module: HTTPX::Plugins::Proxy::ConnectionMethods
- Defined in:
- lib/httpx/plugins/proxy.rb
Instance Method Summary collapse
- #call ⇒ Object
- #coalescable?(connection) ⇒ Boolean
- #connecting? ⇒ Boolean
- #initialize ⇒ Object
- #reset ⇒ Object
Instance Method Details
#call ⇒ Object
234 235 236 237 238 239 240 241 242 243 |
# File 'lib/httpx/plugins/proxy.rb', line 234 def call super return unless @options.proxy case @state when :connecting consume end end |
#coalescable?(connection) ⇒ Boolean
212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 |
# File 'lib/httpx/plugins/proxy.rb', line 212 def coalescable?(connection) return super unless @options.proxy if @io.protocol == "h2" && @origin.scheme == "https" && connection.origin.scheme == "https" && @io.can_verify_peer? # in proxied connections, .origin is the proxy ; Given names # are stored in .origins, this is what is used. origin = URI(connection.origins.first) @io.verify_hostname(origin.host) else @origin == connection.origin end end |
#connecting? ⇒ Boolean
228 229 230 231 232 |
# File 'lib/httpx/plugins/proxy.rb', line 228 def connecting? return super unless @options.proxy super || @state == :connecting || @state == :connected end |
#initialize ⇒ Object
201 202 203 204 205 206 207 208 209 210 |
# File 'lib/httpx/plugins/proxy.rb', line 201 def initialize(*) super return unless @options.proxy # redefining the connection origin as the proxy's URI, # as this will be used as the tcp peer ip. proxy_uri = URI(@options.proxy.uri) @origin.host = proxy_uri.host @origin.port = proxy_uri.port end |
#reset ⇒ Object
245 246 247 248 249 250 251 252 |
# File 'lib/httpx/plugins/proxy.rb', line 245 def reset return super unless @options.proxy @state = :open super emit(:close) end |