jun-puma 1.0.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/History.md +2897 -0
- data/LICENSE +29 -0
- data/README.md +475 -0
- data/bin/puma +10 -0
- data/bin/puma-wild +25 -0
- data/bin/pumactl +12 -0
- data/docs/architecture.md +74 -0
- data/docs/compile_options.md +55 -0
- data/docs/deployment.md +102 -0
- data/docs/fork_worker.md +35 -0
- data/docs/images/puma-connection-flow-no-reactor.png +0 -0
- data/docs/images/puma-connection-flow.png +0 -0
- data/docs/images/puma-general-arch.png +0 -0
- data/docs/jungle/README.md +9 -0
- data/docs/jungle/rc.d/README.md +74 -0
- data/docs/jungle/rc.d/puma +61 -0
- data/docs/jungle/rc.d/puma.conf +10 -0
- data/docs/kubernetes.md +78 -0
- data/docs/nginx.md +80 -0
- data/docs/plugins.md +38 -0
- data/docs/rails_dev_mode.md +28 -0
- data/docs/restart.md +65 -0
- data/docs/signals.md +98 -0
- data/docs/stats.md +142 -0
- data/docs/systemd.md +253 -0
- data/docs/testing_benchmarks_local_files.md +150 -0
- data/docs/testing_test_rackup_ci_files.md +36 -0
- data/ext/puma_http11/PumaHttp11Service.java +17 -0
- data/ext/puma_http11/ext_help.h +15 -0
- data/ext/puma_http11/extconf.rb +80 -0
- data/ext/puma_http11/http11_parser.c +1057 -0
- data/ext/puma_http11/http11_parser.h +65 -0
- data/ext/puma_http11/http11_parser.java.rl +145 -0
- data/ext/puma_http11/http11_parser.rl +149 -0
- data/ext/puma_http11/http11_parser_common.rl +54 -0
- data/ext/puma_http11/mini_ssl.c +842 -0
- data/ext/puma_http11/no_ssl/PumaHttp11Service.java +15 -0
- data/ext/puma_http11/org/jruby/puma/Http11.java +228 -0
- data/ext/puma_http11/org/jruby/puma/Http11Parser.java +455 -0
- data/ext/puma_http11/org/jruby/puma/MiniSSL.java +509 -0
- data/ext/puma_http11/puma_http11.c +495 -0
- data/lib/puma/app/status.rb +96 -0
- data/lib/puma/binder.rb +502 -0
- data/lib/puma/cli.rb +247 -0
- data/lib/puma/client.rb +682 -0
- data/lib/puma/cluster/worker.rb +180 -0
- data/lib/puma/cluster/worker_handle.rb +96 -0
- data/lib/puma/cluster.rb +616 -0
- data/lib/puma/commonlogger.rb +115 -0
- data/lib/puma/configuration.rb +390 -0
- data/lib/puma/const.rb +307 -0
- data/lib/puma/control_cli.rb +316 -0
- data/lib/puma/detect.rb +45 -0
- data/lib/puma/dsl.rb +1425 -0
- data/lib/puma/error_logger.rb +113 -0
- data/lib/puma/events.rb +57 -0
- data/lib/puma/io_buffer.rb +46 -0
- data/lib/puma/jruby_restart.rb +11 -0
- data/lib/puma/json_serialization.rb +96 -0
- data/lib/puma/launcher/bundle_pruner.rb +104 -0
- data/lib/puma/launcher.rb +488 -0
- data/lib/puma/log_writer.rb +147 -0
- data/lib/puma/minissl/context_builder.rb +96 -0
- data/lib/puma/minissl.rb +459 -0
- data/lib/puma/null_io.rb +84 -0
- data/lib/puma/plugin/systemd.rb +90 -0
- data/lib/puma/plugin/tmp_restart.rb +36 -0
- data/lib/puma/plugin.rb +111 -0
- data/lib/puma/puma_http11.jar +0 -0
- data/lib/puma/rack/builder.rb +297 -0
- data/lib/puma/rack/urlmap.rb +93 -0
- data/lib/puma/rack_default.rb +24 -0
- data/lib/puma/reactor.rb +125 -0
- data/lib/puma/request.rb +688 -0
- data/lib/puma/runner.rb +213 -0
- data/lib/puma/sd_notify.rb +149 -0
- data/lib/puma/server.rb +680 -0
- data/lib/puma/single.rb +69 -0
- data/lib/puma/state_file.rb +68 -0
- data/lib/puma/thread_pool.rb +434 -0
- data/lib/puma/util.rb +141 -0
- data/lib/puma.rb +78 -0
- data/lib/rack/handler/puma.rb +144 -0
- data/tools/Dockerfile +16 -0
- data/tools/trickletest.rb +44 -0
- metadata +153 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
package puma;
|
2
|
+
|
3
|
+
import java.io.IOException;
|
4
|
+
|
5
|
+
import org.jruby.Ruby;
|
6
|
+
import org.jruby.runtime.load.BasicLibraryService;
|
7
|
+
|
8
|
+
import org.jruby.puma.Http11;
|
9
|
+
import org.jruby.puma.MiniSSL;
|
10
|
+
|
11
|
+
public class PumaHttp11Service implements BasicLibraryService {
|
12
|
+
public boolean basicLoad(final Ruby runtime) throws IOException {
|
13
|
+
Http11.createHttp11(runtime);
|
14
|
+
MiniSSL.createMiniSSL(runtime);
|
15
|
+
return true;
|
16
|
+
}
|
17
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#ifndef ext_help_h
|
2
|
+
#define ext_help_h
|
3
|
+
|
4
|
+
#define RAISE_NOT_NULL(T) if(T == NULL) rb_raise(rb_eArgError, "%s", "NULL found for " # T " when shouldn't be.");
|
5
|
+
#define DATA_GET(from,type,data_type,name) TypedData_Get_Struct(from,type,data_type,name); RAISE_NOT_NULL(name);
|
6
|
+
#define REQUIRE_TYPE(V, T) if(TYPE(V) != T) rb_raise(rb_eTypeError, "%s", "Wrong argument type for " # V " required " # T);
|
7
|
+
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
|
8
|
+
|
9
|
+
#ifdef DEBUG
|
10
|
+
#define TRACE() fprintf(stderr, "> %s:%d:%s\n", __FILE__, __LINE__, __FUNCTION__)
|
11
|
+
#else
|
12
|
+
#define TRACE()
|
13
|
+
#endif
|
14
|
+
|
15
|
+
#endif
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'mkmf'
|
2
|
+
|
3
|
+
dir_config("puma_http11")
|
4
|
+
|
5
|
+
if $mingw
|
6
|
+
append_cflags '-fstack-protector-strong -D_FORTIFY_SOURCE=2'
|
7
|
+
append_ldflags '-fstack-protector-strong -l:libssp.a'
|
8
|
+
have_library 'ssp'
|
9
|
+
end
|
10
|
+
|
11
|
+
unless ENV["PUMA_DISABLE_SSL"]
|
12
|
+
# don't use pkg_config('openssl') if '--with-openssl-dir' is used
|
13
|
+
has_openssl_dir = dir_config('openssl').any? ||
|
14
|
+
RbConfig::CONFIG['configure_args']&.include?('openssl')
|
15
|
+
|
16
|
+
found_pkg_config = !has_openssl_dir && pkg_config('openssl')
|
17
|
+
|
18
|
+
found_ssl = if !$mingw && found_pkg_config
|
19
|
+
puts '──── Using OpenSSL pkgconfig (openssl.pc) ────'
|
20
|
+
true
|
21
|
+
elsif have_library('libcrypto', 'BIO_read') && have_library('libssl', 'SSL_CTX_new')
|
22
|
+
true
|
23
|
+
elsif %w'crypto libeay32'.find {|crypto| have_library(crypto, 'BIO_read')} &&
|
24
|
+
%w'ssl ssleay32'.find {|ssl| have_library(ssl, 'SSL_CTX_new')}
|
25
|
+
true
|
26
|
+
else
|
27
|
+
puts '** Puma will be compiled without SSL support'
|
28
|
+
false
|
29
|
+
end
|
30
|
+
|
31
|
+
if found_ssl
|
32
|
+
have_header "openssl/bio.h"
|
33
|
+
|
34
|
+
ssl_h = "openssl/ssl.h".freeze
|
35
|
+
|
36
|
+
puts "\n──── Below are yes for 1.0.2 & later ────"
|
37
|
+
have_func "DTLS_method" , ssl_h
|
38
|
+
have_func "SSL_CTX_set_session_cache_mode(NULL, 0)", ssl_h
|
39
|
+
|
40
|
+
puts "\n──── Below are yes for 1.1.0 & later ────"
|
41
|
+
have_func "TLS_server_method" , ssl_h
|
42
|
+
have_func "SSL_CTX_set_min_proto_version(NULL, 0)" , ssl_h
|
43
|
+
|
44
|
+
puts "\n──── Below is yes for 1.1.0 and later, but isn't documented until 3.0.0 ────"
|
45
|
+
# https://github.com/openssl/openssl/blob/OpenSSL_1_1_0/include/openssl/ssl.h#L1159
|
46
|
+
have_func "SSL_CTX_set_dh_auto(NULL, 0)" , ssl_h
|
47
|
+
|
48
|
+
puts "\n──── Below is yes for 1.1.1 & later ────"
|
49
|
+
have_func "SSL_CTX_set_ciphersuites(NULL, \"\")" , ssl_h
|
50
|
+
|
51
|
+
puts "\n──── Below is yes for 3.0.0 & later ────"
|
52
|
+
have_func "SSL_get1_peer_certificate" , ssl_h
|
53
|
+
|
54
|
+
puts ''
|
55
|
+
|
56
|
+
# Random.bytes available in Ruby 2.5 and later, Random::DEFAULT deprecated in 3.0
|
57
|
+
if Random.respond_to?(:bytes)
|
58
|
+
$defs.push "-DHAVE_RANDOM_BYTES"
|
59
|
+
puts "checking for Random.bytes... yes"
|
60
|
+
else
|
61
|
+
puts "checking for Random.bytes... no"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
if ENV["PUMA_MAKE_WARNINGS_INTO_ERRORS"]
|
67
|
+
# Make all warnings into errors
|
68
|
+
# Except `implicit-fallthrough` since most failures comes from ragel state machine generated code
|
69
|
+
if respond_to?(:append_cflags, true) # Ruby 2.5 and later
|
70
|
+
append_cflags(config_string('WERRORFLAG') || '-Werror')
|
71
|
+
append_cflags '-Wno-implicit-fallthrough'
|
72
|
+
else
|
73
|
+
# flag may not exist on some platforms, -Werror may not be defined on some platforms, but
|
74
|
+
# works with all in current CI
|
75
|
+
$CFLAGS << " #{config_string('WERRORFLAG') || '-Werror'}"
|
76
|
+
$CFLAGS << ' -Wno-implicit-fallthrough'
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
create_makefile("puma/puma_http11")
|