added --umask

This commit is contained in:
roberto@debian32
2011-10-28 16:10:26 +02:00
parent 850ac69ca1
commit fa1064db87
2 changed files with 20 additions and 0 deletions
+19
View File
@@ -70,6 +70,7 @@ static struct option long_base_options[] = {
{"abstract-socket", no_argument, 0, 'a'},
{"chmod-socket", optional_argument, 0, 'C'},
{"chown-socket", required_argument, 0, LONG_ARGS_CHOWN_SOCKET},
{"umask", required_argument, 0, LONG_ARGS_UMASK},
#ifdef __linux__
{"freebind", no_argument, &uwsgi.freebind, 1},
#endif
@@ -2928,6 +2929,7 @@ static int manage_base_opt(int i, char *optarg) {
struct uwsgi_cron *uc, *old_uc;
struct uwsgi_socket *uwsgi_sock = NULL;
int zerg_fd;
mode_t umask_mode;
switch (i) {
@@ -3717,6 +3719,23 @@ static int manage_base_opt(int i, char *optarg) {
case LONG_ARGS_CHOWN_SOCKET:
uwsgi.chown_socket = optarg;
return 1;
case LONG_ARGS_UMASK:
if (strlen(optarg) < 3) {
uwsgi_log("invalid umask: %s\n", optarg);
}
umask_mode = 0;
if (strlen(optarg) == 3) {
umask_mode = (umask_mode << 3) + (optarg[0] - '0');
umask_mode = (umask_mode << 3) + (optarg[1] - '0');
umask_mode = (umask_mode << 3) + (optarg[2] - '0');
}
else {
umask_mode = (umask_mode << 3) + (optarg[1] - '0');
umask_mode = (umask_mode << 3) + (optarg[2] - '0');
umask_mode = (umask_mode << 3) + (optarg[3] - '0');
}
umask(umask_mode);
return 1;
case 'C':
uwsgi.chmod_socket = 1;
if (optarg) {
+1
View File
@@ -537,6 +537,7 @@ struct uwsgi_opt {
#define LONG_ARGS_FARM 17157
#define LONG_ARGS_MULES 17158
#define LONG_ARGS_PROCNAME_PREFIX_SP 17159
#define LONG_ARGS_UMASK 17160
#define UWSGI_OK 0