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
247 248 249 250 251 252 253 254 255 256 |
# File 'lib/httpx/plugins/proxy.rb', line 247 def call super return unless @options.proxy case @state when :connecting consume end end |
#coalescable?(connection) ⇒ Boolean
225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 |
# File 'lib/httpx/plugins/proxy.rb', line 225 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
241 242 243 244 245 |
# File 'lib/httpx/plugins/proxy.rb', line 241 def connecting? return super unless @options.proxy super || @state == :connecting || @state == :connected end |
#initialize ⇒ Object
214 215 216 217 218 219 220 221 222 223 |
# File 'lib/httpx/plugins/proxy.rb', line 214 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
258 259 260 261 262 263 264 265 |
# File 'lib/httpx/plugins/proxy.rb', line 258 def reset return super unless @options.proxy @state = :open super emit(:close) end |