mirror of
https://github.com/clearlinux/uwsgi.git
synced 2026-10-04 16:08:31 +00:00
Compare commits
4
Commits
2.0.9
...
uwsgi-1.9.18
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3e17a7136b | ||
|
|
9548daf86f | ||
|
|
7e2cf0ea81 | ||
|
|
41bc23bb40 |
@@ -472,6 +472,7 @@ char *uwsgi_open_and_read(char *url, size_t *size, int add_zero, char *magic_tab
|
||||
// stdin ?
|
||||
if (!strcmp(url, "-")) {
|
||||
buffer = uwsgi_read_fd(0, size, add_zero);
|
||||
goto end;
|
||||
}
|
||||
#ifdef UWSGI_EMBED_CONFIG
|
||||
else if (url[0] == 0) {
|
||||
@@ -482,6 +483,7 @@ char *uwsgi_open_and_read(char *url, size_t *size, int add_zero, char *magic_tab
|
||||
buffer = uwsgi_malloc(*size);
|
||||
memset(buffer, 0, *size);
|
||||
memcpy(buffer, &UWSGI_EMBED_CONFIG, &UWSGI_EMBED_CONFIG_END - &UWSGI_EMBED_CONFIG);
|
||||
goto end;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
+31
-2
@@ -1548,7 +1548,15 @@ void parse_sys_envs(char **envs) {
|
||||
char *earg, *eq_pos;
|
||||
|
||||
while (*uenvs) {
|
||||
if (!strncmp(*uenvs, "UWSGI_", 6) && strncmp(*uenvs, "UWSGI_RELOADS=", 14) && strncmp(*uenvs, "UWSGI_ORIGINAL_PROC_NAME=", 25)) {
|
||||
if (!strncmp(*uenvs, "UWSGI_", 6) &&
|
||||
strncmp(*uenvs, "UWSGI_RELOADS=", 14) &&
|
||||
strncmp(*uenvs, "UWSGI_VASSALS_DIR=", 18) &&
|
||||
strncmp(*uenvs, "UWSGI_EMPEROR_FD=", 17) &&
|
||||
strncmp(*uenvs, "UWSGI_BROODLORD_NUM=", 20) &&
|
||||
strncmp(*uenvs, "UWSGI_EMPEROR_FD_CONFIG=", 24) &&
|
||||
strncmp(*uenvs, "UWSGI_EMPEROR_PROXY=", 20) &&
|
||||
strncmp(*uenvs, "UWSGI_JAIL_PID=", 15) &&
|
||||
strncmp(*uenvs, "UWSGI_ORIGINAL_PROC_NAME=", 25)) {
|
||||
earg = uwsgi_malloc(strlen(*uenvs + 6) + 1);
|
||||
env_to_arg(*uenvs + 6, earg);
|
||||
eq_pos = strchr(earg, '=');
|
||||
@@ -3834,7 +3842,28 @@ void uwsgi_uuid(char *buf) {
|
||||
uuid_generate(uuid_zmq);
|
||||
uuid_unparse(uuid_zmq, buf);
|
||||
#else
|
||||
snprintf(buf, 37, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", rand(), rand(), rand(), rand(), rand(), rand(), rand(), rand(), rand(), rand(), rand());
|
||||
int i,r[11];
|
||||
static int srand_called = 0;
|
||||
if (!uwsgi_file_exists("/dev/urandom")) goto fallback;
|
||||
int fd = open("/dev/urandom", O_RDONLY);
|
||||
if (fd < 0) goto fallback;
|
||||
for(i=0;i<11;i++) {
|
||||
if (read(fd, &r[i], 4) != 4) {
|
||||
close(fd); goto fallback;
|
||||
}
|
||||
}
|
||||
close(fd);
|
||||
goto done;
|
||||
fallback:
|
||||
if (!srand_called) {
|
||||
srand((unsigned int) getpid());
|
||||
srand_called = 1;
|
||||
}
|
||||
for(i=0;i<11;i++) {
|
||||
r[i] = rand();
|
||||
}
|
||||
done:
|
||||
snprintf(buf, 37, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], r[9], r[10]);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -881,6 +881,7 @@ static struct uwsgi_option uwsgi_base_options[] = {
|
||||
{"show-config", no_argument, 0, "show the current config reformatted as ini", uwsgi_opt_true, &uwsgi.show_config, 0},
|
||||
{"binary-append-data", required_argument, 0, "return the content of a resource to stdout for appending to a uwsgi binary (for data:// usage)", uwsgi_opt_binary_append_data, NULL, UWSGI_OPT_IMMEDIATE},
|
||||
{"print", required_argument, 0, "simple print", uwsgi_opt_print, NULL, 0},
|
||||
{"iprint", required_argument, 0, "simple print (immediate version)", uwsgi_opt_print, NULL, UWSGI_OPT_IMMEDIATE},
|
||||
{"exit", optional_argument, 0, "force exit() of the instance", uwsgi_opt_exit, NULL, UWSGI_OPT_IMMEDIATE},
|
||||
{"cflags", no_argument, 0, "report uWSGI CFLAGS (useful for building external plugins)", uwsgi_opt_cflags, NULL, UWSGI_OPT_IMMEDIATE},
|
||||
{"dot-h", no_argument, 0, "dump the uwsgi.h used for building the core (useful for building external plugins)", uwsgi_opt_dot_h, NULL, UWSGI_OPT_IMMEDIATE},
|
||||
|
||||
@@ -76,12 +76,16 @@ int psgi_response(struct wsgi_request *wsgi_req, AV *response) {
|
||||
if (!headers) { uwsgi_log("invalid PSGI headers\n"); return UWSGI_OK;}
|
||||
|
||||
// generate headers
|
||||
for(i=0; i<=av_len(headers); i++) {
|
||||
int headers_len = (int) av_len(headers);
|
||||
for(i=0; i<=headers_len; i++) {
|
||||
hitem = av_fetch(headers,i,0);
|
||||
if (!*hitem) {
|
||||
uwsgi_log("invalid PSGI headers\n"); return UWSGI_OK;
|
||||
}
|
||||
chitem = SvPV(*hitem, hlen);
|
||||
if (i+1 > headers_len) {
|
||||
uwsgi_log("invalid PSGI headers\n"); return UWSGI_OK;
|
||||
}
|
||||
hitem = av_fetch(headers,i+1,0);
|
||||
if (!*hitem) {
|
||||
uwsgi_log("invalid PSGI headers\n"); return UWSGI_OK;
|
||||
|
||||
@@ -227,6 +227,10 @@ int init_uwsgi_app(int loader, void *arg1, struct wsgi_request *wsgi_req, PyThre
|
||||
PyObject *callables_dict = get_uwsgi_pydict((char *)arg1);
|
||||
if (callables_dict) {
|
||||
wi->callable = PyDict_GetItem(callables_dict, (PyObject *)wi->callable);
|
||||
if (!wi->callable) {
|
||||
uwsgi_log("skipping broken app %s\n", wsgi_req->appid);
|
||||
goto multiapp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -357,6 +361,7 @@ int init_uwsgi_app(int loader, void *arg1, struct wsgi_request *wsgi_req, PyThre
|
||||
|
||||
uwsgi_apps_cnt++;
|
||||
|
||||
multiapp:
|
||||
if (multiapp > 1) {
|
||||
for(i=1;i<multiapp;i++) {
|
||||
PyObject *app_mnt = PyList_GetItem(app_list, i);
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# uWSGI build system
|
||||
|
||||
uwsgi_version = '1.9.18.1'
|
||||
uwsgi_version = '1.9.18.3'
|
||||
|
||||
import os
|
||||
import re
|
||||
|
||||
Reference in New Issue
Block a user