Sha256: 3badc7d22e3e14b5bed1ed68483aa51f5551f4d2af1178b5fc085ea1c3e12009

Contents?: true

Size: 1 KB

Versions: 13

Compression:

Stored size: 1 KB

Contents

require 'webrick'
require 'cert'

module Doraemon

  class HTTPServer

    def initialize(port=8080, root)
      @port = port
      @root = root
    end

    def start

      server = WEBrick::HTTPServer.new :Port => @port
      server.mount_proc '/' do |req, resp|
        if req.path == '/'
          # 默认首页内容为下载证书页
          resp.body << File.read(File.join(__dir__, "web/download_cert.html"))
          resp.status = 200
        else
          path = File.join(@root, req.path)
          if File.exist?(path)
            resp.body << File.read(path)
            resp.status = 200
          else
            resp.body << "#{req.path} Not Found"
            resp.status = 404
          end
        end
      end
      
      server.mount_proc "/doraemon.crt" do |req, resp|
        resp.body << File.read(Cert.cert_path)
        resp.header["content-type"] = "application/x-x509-ca-cert"
        resp.status = 200
      end

      trap 'INT' do server.shutdown end
      server.start
    end

  end

end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
doraemon-1.0.12 lib/doraemon/http_server.rb
doraemon-1.0.11 lib/doraemon/http_server.rb
doraemon-1.0.10 lib/doraemon/http_server.rb
doraemon-1.0.9 lib/doraemon/http_server.rb
doraemon-1.0.8 lib/doraemon/http_server.rb
doraemon-1.0.7 lib/doraemon/http_server.rb
doraemon-1.0.6 lib/doraemon/http_server.rb
doraemon-1.0.5 lib/doraemon/http_server.rb
doraemon-1.0.4 lib/doraemon/http_server.rb
doraemon-1.0.3 lib/doraemon/http_server.rb
doraemon-1.0.2 lib/doraemon/http_server.rb
doraemon-1.0.1 lib/doraemon/http_server.rb
doraemon-1.0.0 lib/doraemon/http_server.rb