yahns Ruby server user/dev discussion
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [ANN] yahns 1.5.0 - initial OpenSSL support and bugfixes
@ 2014-12-21  2:25  5% Eric Wong
  0 siblings, 0 replies; 3+ results
From: Eric Wong @ 2014-12-21  2:25 UTC (permalink / raw)
  To: yahns-public

This release adds basic OpenSSL support for HTTPS connections.

Users must supply a OpenSSL::SSL::SSLContext object which yahns will use
as-is.  yahns will only support HTTPS on Ruby 2.1 and later, as we rely
on "exception: false" in the read_nonblock and write_nonblock methods in
OpenSSL::SSL::SSLSocket.

See the Ruby standard library documentation on how to configure
OpenSSL::SSL::SSLContext objects to pass to the yahns "listen" directive
Editing the yahns config file to use OpenSSL goes something like this:

    require 'openssl' # we will not do this for the user, even
    ctx = OpenSSL::SSL::SSLContext.new
    # user must configure ctx here...

    listen 443, ssl_ctx: ctx

Note: yahns developers are not responsible for bugs in OpenSSL itself
or misconfigured SSLContext objects created by users.  However, our
support of OpenSSL sockets is barely-tested and likely buggy, too.

Furthermore, the "sendfile" (or "kgio-sendfile") gem is no longer a
required dependency.  It is currently impossible to use zero-copy
system calls with TLS sockets.

There are also minor cleanups and a bugfix to ensure body#close is
called for folks using body#to_path where `body' is the Rack
response body.  This bug affected logging using the 'clogger' gem
when serving static files.

Shortlog of changes since 1.4.0

      save around 1500 bytes of memory on x86-64
      http_response: remove arg for Array#join
      remove unused client_max_header_size config
      config: use literal symbol array for now
      http_response: reduce constants for 100 responses
      favor Array#map! for freshly-split arrays
      sendfile_compat: remove dependency on pread
      extras/autoindex: simplify checking non-.gz
      Rakefile: kill more useless gsub use
      initial cut at OpenSSL support
      test/test_ssl: skip test if SSL on older Rubies
      wbuf_common: close body proxies on sendfile abort
      bump published Ruby version requirement to 2.0
      make sendfile an optional dependency
      openssl_client: ignore SSL_accept errors during negotiation

Disclaimer: the yahns project does not and will never endorse
any commercial entities, including certificate authorities.

Shpx Nhgubevgl.

-- 
EW

^ permalink raw reply	[relevance 5%]

* [PATCH 5/6] favor Array#map! for freshly-split arrays
  2014-11-20 20:45  6% [PATCH 0/6] misc minor updates Eric Wong
@ 2014-11-20 20:45  7% ` Eric Wong
  0 siblings, 0 replies; 3+ results
From: Eric Wong @ 2014-11-20 20:45 UTC (permalink / raw)
  To: yahns-public; +Cc: e

This barely reduces garbage objects at startup, but less
garbage is usually better.
---
 lib/yahns/server.rb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/yahns/server.rb b/lib/yahns/server.rb
index b28e741..1196d2d 100644
--- a/lib/yahns/server.rb
+++ b/lib/yahns/server.rb
@@ -313,7 +313,7 @@ class Yahns::Server # :nodoc:
     # because that can completely break the non-blocking one.
     # Unfortunately, there is no one-off MSG_DONTWAIT-like flag for
     # accept4(2).
-    inherited = ENV['YAHNS_FD'].to_s.split(',').map do |fd|
+    inherited = ENV['YAHNS_FD'].to_s.split(',').map! do |fd|
       io = Socket.for_fd(fd.to_i)
       set_server_sockopt(io, sock_opts(io))
       @logger.info "inherited addr=#{sock_name(io)} fd=#{fd}"
-- 
EW


^ permalink raw reply related	[relevance 7%]

* [PATCH 0/6] misc minor updates
@ 2014-11-20 20:45  6% Eric Wong
  2014-11-20 20:45  7% ` [PATCH 5/6] favor Array#map! for freshly-split arrays Eric Wong
  0 siblings, 1 reply; 3+ results
From: Eric Wong @ 2014-11-20 20:45 UTC (permalink / raw)
  To: yahns-public; +Cc: e

Most of this are minor cleanups to reduce code size.  I'll probably
make the sendfile dependency optional as well.  Not everybody needs
static file serving, and the pread-style offset-agnosticism is
unlikely to be useful unless we feel the need need to implement open
file caching for static files.

Eric Wong (6):
      http_response: remove arg for Array#join
      remove unused client_max_header_size config
      config: use literal symbol array for now
      http_response: reduce constants for 100 responses
      favor Array#map! for freshly-split arrays
      sendfile_compat: remove dependency on pread

 INSTALL                      |  4 +---
 lib/yahns/config.rb          |  3 +--
 lib/yahns/http_context.rb    |  1 -
 lib/yahns/http_response.rb   | 11 +++++------
 lib/yahns/sendfile_compat.rb | 12 +++++-------
 lib/yahns/server.rb          |  2 +-
 lib/yahns/tmpio.rb           |  2 +-
 7 files changed, 14 insertions(+), 21 deletions(-)

^ permalink raw reply	[relevance 6%]

Results 1-3 of 3 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2014-11-20 20:45  6% [PATCH 0/6] misc minor updates Eric Wong
2014-11-20 20:45  7% ` [PATCH 5/6] favor Array#map! for freshly-split arrays Eric Wong
2014-12-21  2:25  5% [ANN] yahns 1.5.0 - initial OpenSSL support and bugfixes Eric Wong

Code repositories for project(s) associated with this public inbox

	https://yhbt.net/yahns.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).