Sha256: de3a1bf749833d07bd157f5bc42530b7836d01608a1eea71d72fd9bc87732f10
Contents?: true
Size: 1.43 KB
Versions: 5
Compression:
Stored size: 1.43 KB
Contents
# frozen_string_literal: true module HTTPX class UNIX < TCP using URIExtensions attr_reader :path alias_method :host, :path def initialize(origin, path, options) @addresses = [] @hostname = origin.host @state = :idle @options = options @fallback_protocol = @options.fallback_protocol if @options.io @io = case @options.io when Hash @options.io[origin.authority] else @options.io end raise Error, "Given IO objects do not match the request authority" unless @io @path = @io.path @keep_open = true @state = :connected elsif path @path = path else raise Error, "No path given where to store the socket" end @io ||= build_socket end def connect return unless closed? begin if @io.closed? transition(:idle) @io = build_socket end @io.connect_nonblock(Socket.sockaddr_un(@path)) rescue Errno::EISCONN end transition(:connected) rescue Errno::EINPROGRESS, Errno::EALREADY, ::IO::WaitReadable end def expired? false end # :nocov: def inspect "#<#{self.class}(path: #{@path}): (state: #{@state})>" end # :nocov: private def build_socket Socket.new(Socket::PF_UNIX, :STREAM, 0) end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
httpx-1.3.4 | lib/httpx/io/unix.rb |
httpx-1.3.3 | lib/httpx/io/unix.rb |
httpx-1.3.2 | lib/httpx/io/unix.rb |
httpx-1.3.1 | lib/httpx/io/unix.rb |
httpx-1.3.0 | lib/httpx/io/unix.rb |