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
- #send(request) ⇒ Object
Instance Method Details
#call ⇒ Object
254 255 256 257 258 259 260 261 262 263 |
# File 'lib/httpx/plugins/proxy.rb', line 254 def call super return unless @options.proxy case @state when :connecting consume end end |
#coalescable?(connection) ⇒ Boolean
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 |
# File 'lib/httpx/plugins/proxy.rb', line 224 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
248 249 250 251 252 |
# File 'lib/httpx/plugins/proxy.rb', line 248 def connecting? return super unless @options.proxy super || @state == :connecting || @state == :connected end |
#initialize ⇒ Object
213 214 215 216 217 218 219 220 221 222 |
# File 'lib/httpx/plugins/proxy.rb', line 213 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
265 266 267 268 269 270 271 272 |
# File 'lib/httpx/plugins/proxy.rb', line 265 def reset return super unless @options.proxy @state = :open transition(:closing) transition(:closed) emit(:close) end |
#send(request) ⇒ Object
240 241 242 243 244 245 246 |
# File 'lib/httpx/plugins/proxy.rb', line 240 def send(request) return super unless ( @options.proxy && @state != :idle && connecting? ) (@proxy_pending ||= []) << request end |