37 Commits

Author SHA1 Message Date
Benoit Chesneau
0ad47db800
Use user-writable default path for control socket (#3551)
The previous default /run/gunicorn.ctl requires root permissions.
Now uses $XDG_RUNTIME_DIR/gunicorn.ctl if available, otherwise
$HOME/.gunicorn/gunicorn.ctl. This works on Linux, FreeBSD, OpenBSD,
and macOS without requiring elevated privileges.

- Add _get_default_control_socket() helper in config.py
- Create parent directory automatically with 0o700 permissions
- Update gunicornc CLI to use the same default path
- Add unit tests for path selection and directory creation
2026-03-23 20:08:03 +01:00
Benoit Chesneau
e9a3f30a0f
fix: keep forwarded_allow_ips as strings for backward compatibility (#3459)
The CIDR network support added in 24.1.0 changed forwarded_allow_ips
and proxy_allow_ips from string lists to ipaddress.ip_network objects.
This broke external tools like uvicorn that expect strings.

This fix validates IP/CIDR format during config parsing but keeps the
string representation. Network objects are cached in Config methods
(forwarded_allow_networks() and proxy_allow_networks()) for efficient
IP checking without repeated conversions.

Also uses strict mode for ip_network validation to detect mistakes like
192.168.1.1/24 where host bits are set (should be 192.168.1.0/24).

Fixes #3458
2026-01-23 23:51:25 +01:00
Benoit Chesneau
e52ac46e29 feat: support CIDR networks in forwarded_allow_ips and proxy_allow_ips
Use Python's ipaddress module to support IP networks in allow lists.
Individual IP addresses are converted to /32 (IPv4) or /128 (IPv6)
networks. CIDR notation (e.g., 192.168.0.0/16) is now supported.

Fixes #1485
Closes #2390
2026-01-23 11:39:05 +01:00
Benoit Chesneau
e75c3533e3
Merge pull request #3189 from pajod/patch-py36
chore: eat Python 2 leftovers
2024-08-10 10:40:40 +02:00
Paul J. Dorn
ffa48b581d test: default change was intentional 2024-08-08 18:37:32 +02:00
Paul J. Dorn
3e042e8269 Configurable list of forwarder headers 2024-08-07 20:15:13 +02:00
Paul J. Dorn
422b18acea class Name(object): -> class Name: 2024-04-22 03:33:30 +02:00
Paul J. Dorn
4323027b1e drop long-default - coding: utf-8 2024-04-22 03:33:14 +02:00
Odysseas Fatouros
08364f0365 Issue #3079, add unit test 2024-01-02 14:21:26 +01:00
Tero Saarni
d8c3b1490e Deprecate ssl_version option
This change defaults SSLContext to Python's ssl.create_default_context() and
marks ssl_version option as deprecated. The option value will be ignored and
warnign will be printed in stderr.

The ssl_version option was depending on old method of setting TLS min/max
version, which has not worked well anymore with modern Python versions.
2023-05-11 17:45:57 +03:00
Benoit Chesneau
4a1c402e2c
Merge pull request #2384 from larribas/2066-statsd-socket
Allow reporting StatsD metrics over UDS sockets
2023-05-07 20:39:11 +02:00
larribas
2a16fcd3ce Test and defend against the specific case where the statsd hostname is 'unix' 2020-07-20 10:16:42 +02:00
larribas
15abac7e81 Allow specifying a UDS socket address through --statsd-host 2020-07-19 20:11:09 +02:00
Hasan Ramezni
57a9e2eb7e Specify wsgi_app in config #1359. 2020-05-01 01:11:21 +02:00
Randall Leeds
ee685e197b Merge pull request #2054 from rcoup/2052-print-config 2020-04-20 12:40:57 -07:00
Aaron Wilson
291483dd39 Add a __repr__ to config to include its value (#2076)
It's sometimes helpful to be able to trivially dump all the config values
for debugging purposes. This commit defines a repr for that.
2019-11-22 21:39:45 +01:00
Wojciech Malinowski
5803f835f6 Added a possibility of logging the metrics to a Unix domain socket instead of UDP 2019-06-06 15:13:23 +02:00
Robert Coup
93d2687d24 f-strings only date back to Py3.6 2019-05-31 12:15:02 +01:00
Robert Coup
13c5d72bd1 Add --print-config option to print the resolved settings at startup. 2019-05-31 12:04:22 +01:00
Marat
a8963ef1a5 Remove redundant super() arguments 2019-03-16 15:00:07 -07:00
Florian Apolloner
ee7af1247b Added support to --bind to open file descriptors (#1809)
Fixes #1107
2018-11-16 20:21:13 +03:00
Berker Peksag
c66957bbe9 Add support for named constants in the --ssl-version flag
Fixes #1114

Co-Authored-By: Brett Randall <javabrett@gmail.com>
Signed-off-by: Brett Randall <javabrett@gmail.com>
2018-10-31 14:43:40 +03:00
Berker Peksag
473ac62a2b Revert "Add test and update documentation"
This reverts commit eab1256052d7446359fb6f65279f9bebd18fafd4.
2018-05-06 18:10:53 +03:00
Berker Peksag
eab1256052 Add test and update documentation 2018-05-06 18:05:54 +03:00
Hasan Ramezani
90b7daebb6 Fix invalid auto_int value error when --umask=0 passed (#1632)
Fixes #1622
2017-10-28 10:48:23 +03:00
Oliver Bristow
6a2a8b3298 Fix #1576 - config file/module in GUNICORN_CMD_ARGS 2017-09-16 11:41:57 +01:00
Hasan Ramezni
31fed6b470 add tests for umask config. 2017-02-19 13:33:47 +03:30
Mark Adams
bc20bea7d9 Add support for --reload-engine
Currently, gunicorn automatically uses the preferred reloader (inotify
if present with fallback to polling). However, it would be useful in
some scenarios if users could force polling.

The solution for this is to add a new configuration option called
'reload_engine' which takes one of three options: ['auto', 'poll',
'inotify'].

Fixes #1459
2017-02-14 19:49:37 +03:00
Berker Peksag
31b8e48a78 Silence prospector warnings 2017-02-07 09:05:43 +03:00
Berker Peksag
577c3eb030 Use the best available reloader when --reload is passed
Fixes #1422
2017-02-06 07:32:14 +03:00
Hasan Ramezni
e9a00b75c5 add empty line after some tests. 2017-01-17 20:37:02 +03:00
Hasan Ramezni
e007601f0d test error message in test_invalid_enviroment_variables_config test. 2017-01-17 00:55:45 +03:00
Hasan Ramezni
bb2496db7b test_cmd_line_invalid_setting added. 2017-01-15 23:34:23 +03:00
Hasan Ramezani
3f9eace246 Add ability to pass settings to GUNICORN_CMD_ARGS. (#1385) 2017-01-08 16:41:28 +03:00
bloodearnest
34b595e817 Always use the the user configured logger class.
Previously, configuring statsd_host would override the configured class
2016-02-19 13:09:58 +00:00
Slava Shklyaev
531133615e Prefix config file with its type 2015-07-08 09:21:32 +03:00
Berker Peksag
9475e2625e Rename test files. 2015-07-03 07:46:22 +03:00