mirror of
https://github.com/clearlinux/uwsgi.git
synced 2026-09-06 21:51:30 +00:00
completed ruby/rack porting to the new options api
This commit is contained in:
+12
-37
@@ -6,18 +6,18 @@ struct uwsgi_rack ur;
|
||||
|
||||
struct uwsgi_option uwsgi_rack_options[] = {
|
||||
|
||||
/*
|
||||
{"rails", required_argument, 0, LONG_ARGS_RAILS},
|
||||
{"rack", required_argument, 0, LONG_ARGS_RACK},
|
||||
{"ruby-gc-freq", required_argument, 0, LONG_ARGS_RUBY_GC_FREQ},
|
||||
{"rb-gc-freq", required_argument, 0, LONG_ARGS_RUBY_GC_FREQ},
|
||||
{"rb-require", required_argument, 0, LONG_ARGS_RUBY_REQUIRE},
|
||||
{"ruby-require", required_argument, 0, LONG_ARGS_RUBY_REQUIRE},
|
||||
{"rbrequire", required_argument, 0, LONG_ARGS_RUBY_REQUIRE},
|
||||
{"rubyrequire", required_argument, 0, LONG_ARGS_RUBY_REQUIRE},
|
||||
{"require", required_argument, 0, LONG_ARGS_RUBY_REQUIRE},
|
||||
{"rbshell", optional_argument, 0, LONG_ARGS_RUBY_SHELL},
|
||||
*/
|
||||
{"rails", required_argument, 0, "load a rails <= 2.x app", uwsgi_opt_set_str, &ur.rails, UWSGI_OPT_POST_BUFFERING},
|
||||
{"rack", required_argument, 0, "load a rack app", uwsgi_opt_set_str, &ur.rack, UWSGI_OPT_POST_BUFFERING},
|
||||
{"ruby-gc-freq", required_argument, 0, "set ruby GC frequency", uwsgi_opt_set_int, &ur.gc_freq, 0},
|
||||
{"rb-gc-freq", required_argument, 0, "set ruby GC frequency", uwsgi_opt_set_int, &ur.gc_freq, 0},
|
||||
|
||||
{"rb-require", required_argument, 0, "import/require a ruby module/script", uwsgi_opt_add_string_list, &ur.rbrequire, 0},
|
||||
{"ruby-require", required_argument, 0, "import/require a ruby module/script", uwsgi_opt_add_string_list, &ur.rbrequire, 0},
|
||||
{"rbrequire", required_argument, 0, "import/require a ruby module/script", uwsgi_opt_add_string_list, &ur.rbrequire, 0},
|
||||
{"rubyrequire", required_argument, 0, "import/require a ruby module/script", uwsgi_opt_add_string_list, &ur.rbrequire, 0},
|
||||
{"require", required_argument, 0, "import/require a ruby module/script", uwsgi_opt_add_string_list, &ur.rbrequire, 0},
|
||||
|
||||
{"rbshell", optional_argument, 0, "run a ruby/irb shell", uwsgi_opt_true, &ur.rb_shell, 0},
|
||||
|
||||
{0, 0, 0, 0, 0, 0 ,0},
|
||||
|
||||
@@ -735,31 +735,6 @@ void uwsgi_rack_after_request(struct wsgi_request *wsgi_req) {
|
||||
log_request(wsgi_req);
|
||||
}
|
||||
|
||||
int uwsgi_rack_manage_options(int i, char *optarg) {
|
||||
|
||||
|
||||
switch(i) {
|
||||
case LONG_ARGS_RAILS:
|
||||
// HACK: can be overridden with --post-buffering
|
||||
if (!uwsgi.post_buffering) uwsgi.post_buffering = 4096;
|
||||
ur.rails = optarg;
|
||||
return 1;
|
||||
case LONG_ARGS_RACK:
|
||||
// HACK: can be overridden with --post-buffering
|
||||
if (!uwsgi.post_buffering) uwsgi.post_buffering = 4096;
|
||||
ur.rack = optarg;
|
||||
return 1;
|
||||
case LONG_ARGS_RUBY_GC_FREQ:
|
||||
ur.gc_freq = atoi(optarg);
|
||||
return 1;
|
||||
case LONG_ARGS_RUBY_REQUIRE:
|
||||
uwsgi_string_new_list(&ur.rbrequire, optarg);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void uwsgi_rack_suspend(struct wsgi_request *wsgi_req) {
|
||||
|
||||
uwsgi_log("SUSPENDING RUBY\n");
|
||||
|
||||
@@ -2,13 +2,6 @@
|
||||
|
||||
#include <ruby.h>
|
||||
|
||||
#define LONG_ARGS_RACK_BASE 17000 + ((7 + 1) * 100)
|
||||
#define LONG_ARGS_RAILS LONG_ARGS_RACK_BASE + 1
|
||||
#define LONG_ARGS_RUBY_GC_FREQ LONG_ARGS_RACK_BASE + 2
|
||||
#define LONG_ARGS_RACK LONG_ARGS_RACK_BASE + 3
|
||||
#define LONG_ARGS_RUBY_SHELL LONG_ARGS_RACK_BASE + 4
|
||||
#define LONG_ARGS_RUBY_REQUIRE LONG_ARGS_RACK_BASE + 5
|
||||
|
||||
#ifndef RUBY19
|
||||
#include <st.h>
|
||||
#define rb_errinfo() ruby_errinfo
|
||||
|
||||
@@ -1811,6 +1811,10 @@ void add_exported_option(char *key, char *value, int configured) {
|
||||
if (op->flags & UWSGI_OPT_NO_SERVER) {
|
||||
uwsgi.no_server = 1;
|
||||
}
|
||||
// requires post_buffering ?
|
||||
if (op->flags & UWSGI_OPT_POST_BUFFERING) {
|
||||
if (!uwsgi.post_buffering) uwsgi.post_buffering = 4096;
|
||||
}
|
||||
// immediate ?
|
||||
if (op->flags & UWSGI_OPT_IMMEDIATE) {
|
||||
op->func(key, value, op->data);
|
||||
|
||||
@@ -37,17 +37,18 @@ extern "C" {
|
||||
|
||||
#define ushared uwsgi.shared
|
||||
|
||||
#define UWSGI_OPT_IMMEDIATE (1 << 0)
|
||||
#define UWSGI_OPT_MASTER (1 << 1)
|
||||
#define UWSGI_OPT_LOG_MASTER (1 << 2)
|
||||
#define UWSGI_OPT_THREADS (1 << 3)
|
||||
#define UWSGI_OPT_CHEAPER (1 << 4)
|
||||
#define UWSGI_OPT_VHOST (1 << 5)
|
||||
#define UWSGI_OPT_MEMORY (1 << 6)
|
||||
#define UWSGI_OPT_PROCNAME (1 << 7)
|
||||
#define UWSGI_OPT_LAZY (1 << 8)
|
||||
#define UWSGI_OPT_NO_INITIAL (1 << 9)
|
||||
#define UWSGI_OPT_NO_SERVER (1 << 10)
|
||||
#define UWSGI_OPT_IMMEDIATE (1 << 0)
|
||||
#define UWSGI_OPT_MASTER (1 << 1)
|
||||
#define UWSGI_OPT_LOG_MASTER (1 << 2)
|
||||
#define UWSGI_OPT_THREADS (1 << 3)
|
||||
#define UWSGI_OPT_CHEAPER (1 << 4)
|
||||
#define UWSGI_OPT_VHOST (1 << 5)
|
||||
#define UWSGI_OPT_MEMORY (1 << 6)
|
||||
#define UWSGI_OPT_PROCNAME (1 << 7)
|
||||
#define UWSGI_OPT_LAZY (1 << 8)
|
||||
#define UWSGI_OPT_NO_INITIAL (1 << 9)
|
||||
#define UWSGI_OPT_NO_SERVER (1 << 10)
|
||||
#define UWSGI_OPT_POST_BUFFERING (1 << 11)
|
||||
|
||||
#define MAX_APPS 64
|
||||
#define MAX_GENERIC_PLUGINS 64
|
||||
|
||||
Reference in New Issue
Block a user