* Fail build if compiling extensions raises warnings (#1953)
Make warning into errors and also fix all compiler warnings reported in
mini_ssl source code.
* Fix some compiler warnings and errors reported by checks
* Add MAKE_WARNINGS_INTO_ERRORS env variable
MAKE_WARNINGS_INTO_ERRORS environment variable toggles whether a build should
treat all warnings into errors or not.
Move appending WERRORFLAG to cflags after OpenSSL methods verification because
on some specifics builds this causes mkmf to wrongly detect methods in OpenSSL
headers.
* Add noentry to write date to avoid unused variables
* Ignore implicit-fallthrough warnings
Those warnings are related to ragel state machine generated code.
* Enforce no warnings on GH Actions
* Update History.md file reflecting latest changes
* Actions - Add nonMRIHead workflow - allow failure - JRuby, TruffleRuby
Also, on Windows, add Ruby 2.2 and fix compile code
* extconf.rb - minor fix for old Windows Rubies
* JRuby fixes for CI
1. lib/puma/minissl.rb - add 'correct' constants so CI will run
2. test/shell/t*.rb - extend time to start by two seconds for JRuby
* Delete .travis.yml
* Add extconf test for DTLS_method & use in mini_ssl.c
* Rakefile - use require_relative for 'lib/puma/detect'
* Add Trusty OpenSSL 1.0.1 job to Travis
* Add extconf test for TLS_server_method & use in mini_ssl.c
The problem was a few points:
* We were not clearing the reactor on a normal stop, which is what
is used in a phased restart.
* On close, SSL sockets were not sending the shutdown message.
* SSL sockets that were completely uninitialized ended up sitting
in reactor and could not actually be shutdown because there were
not initialized.