Class: Falcon::Endpoint
- Inherits:
-
Async::HTTP::Endpoint
- Object
- Async::HTTP::Endpoint
- Falcon::Endpoint
- Defined in:
- lib/falcon/endpoint.rb
Overview
An HTTP-specific endpoint which adds localhost TLS.
Instance Method Summary collapse
-
#build_ssl_context(hostname = self.hostname) ⇒ Object
Build an appropriate SSL context for the given hostname.
-
#ssl_context ⇒ Object
The SSL context to use, which invokes #build_ssl_context if not otherwise specified.
Instance Method Details
#build_ssl_context(hostname = self.hostname) ⇒ Object
Build an appropriate SSL context for the given hostname.
Uses Localhost::Authority to generate self-signed certficates.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/falcon/endpoint.rb', line 40 def build_ssl_context(hostname = self.hostname) = Localhost::Authority.fetch(hostname) .server_context.tap do |context| context.alpn_select_cb = lambda do |protocols| if protocols.include? "h2" return "h2" elsif protocols.include? "http/1.1" return "http/1.1" elsif protocols.include? "http/1.0" return "http/1.0" else return nil end end context.session_id_context = "falcon" end end |
#ssl_context ⇒ Object
The SSL context to use, which invokes #build_ssl_context if not otherwise specified.
31 32 33 |
# File 'lib/falcon/endpoint.rb', line 31 def ssl_context @options[:ssl_context] || build_ssl_context end |