Sha256: bc77c8060498f319bdb7b2ce87a9f922211d720a707a86a856a732ffe19c11d6
Contents?: true
Size: 949 Bytes
Versions: 6
Compression:
Stored size: 949 Bytes
Contents
# frozen_string_literal: true require 'bundler/setup' require 'polyphony' require 'localhost/authority' authority = Localhost::Authority.fetch server_ctx = authority.server_context resolver = spin_loop do name, client = receive client << server_ctx end server_ctx.servername_cb = proc do |_socket, name| resolver << [name, Fiber.current] receive end opts = { reuse_addr: true, dont_linger: true, secure_context: server_ctx } server = Polyphony::Net.tcp_listen('localhost', 1234, opts) puts 'Serving HTTPS on port 1234' begin server.accept_loop(ignore_errors: false) do |socket| spin do while (data = socket.gets("\n", 8192)) if data.chomp.empty? socket << "HTTP/1.1 200 OK\nConnection: close\nContent-Length: 4\n\nfoo\n" break end end rescue OpenSSL::SSL::SSLError # ignore end end rescue => e puts '*' * 40 p e puts e.backtrace.join("\n") end
Version data entries
6 entries across 6 versions & 1 rubygems