import_from_env

in lib/puma/binder.rb [55:87]


    def import_from_env
      remove = []

      ENV.each do |k,v|
        if k =~ /PUMA_INHERIT_\d+/
          fd, url = v.split(":", 2)
          @inherited_fds[url] = fd.to_i
          remove << k
        elsif k == 'LISTEN_FDS' && ENV['LISTEN_PID'].to_i == $$
          v.to_i.times do |num|
            fd = num + 3
            sock = TCPServer.for_fd(fd)
            begin
              key = [ :unix, Socket.unpack_sockaddr_un(sock.getsockname) ]
            rescue ArgumentError
              port, addr = Socket.unpack_sockaddr_in(sock.getsockname)
              if addr =~ /\:/
                addr = "[#{addr}]"
              end
              key = [ :tcp, addr, port ]
            end
            @activated_sockets[key] = sock
            @events.debug "Registered #{key.join ':'} for activation from LISTEN_FDS"
          end
          remove << k << 'LISTEN_PID'
        end
      end

      remove.each do |k|
        ENV.delete k
      end
    end