183 Commits

Author SHA1 Message Date
Christian Clauss
1feb7c59a2 Revert the xfail for Python 3.10 2022-02-07 08:23:03 +11:00
Christian Clauss
a16b8975a9 GitHub Action to run tox
Because Travis CI seems to be on vacation... https://travis-ci.org/github/benoitc/gunicorn
2022-02-07 08:23:03 +11:00
Randall Leeds
3573fd38d0 Capture peer name from accept
Avoid calls to getpeername by capturing the peer name returned by
accept.
2020-12-17 22:13:02 -05:00
Hasan Ramezni
57a9e2eb7e Specify wsgi_app in config #1359. 2020-05-01 01:11:21 +02:00
Randall Leeds
839d5dc66c Merge pull request #1996 from javabrett/1690-rewritings 2020-04-20 15:37:41 -07:00
Randall Leeds
ee685e197b Merge pull request #2054 from rcoup/2052-print-config 2020-04-20 12:40:57 -07:00
Stanis Trendelenburg
27d1e9887a Fix issues #2133 and #2244
Start reloader after loading the WSGI app.
2020-02-02 22:57:14 +01:00
Jason Madden
2d40e6dace
Use socket.sendfile() instead of os.sendfile().
Fixes #2223.

Unfortunately, eventlet doesn't implement GreenSocket.sendfile, so we have to do it for it.

Add gevent and eventlet to tox.ini and add tests to make sure we can at least import the workers. Some tests that this actually functions would be nice...

Update the gevent and eventlet setup extras to require the versions that are enforced in their worker modules.
2020-01-04 06:31:25 -06: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
Benoit Chesneau
c5be1bae5c
Merge pull request #2181 from Sytten/fix/http-desync
Fix/http desync
2019-11-20 21:28:18 +01:00
Emile Fugulin
ddf5e66ac8 Remove strict check of Transfer-Encoding 2019-11-20 12:25:39 -05:00
David Lord
19cb68f4c3 load application from factory function (#2178)
* load application from factory function

Use `ast.parse` to validate that the string passed to the CLI is either
an attribute name or a function call. Use `ast.literal_eval` to parse
any positional and keyword arguments to the function. Call the function
to get the real application.

Co-authored-by: Connor Brinton <connor.brinton@gmail.com>

* test coverage for util.import_app

* document app factory pattern
2019-11-19 23:09:53 +01:00
Emile Fugulin
f74324bd75 Handle multiple transfer-encoding 2019-11-18 22:29:02 -05:00
Emile Fugulin
bd8670b4db Handle duplicate content-length 2019-11-18 21:16:12 -05:00
Emile Fugulin
b798412444 Remove default strip of header name 2019-11-18 19:44:01 -05:00
Martin Bašti
f38f717539 Fix pytest 5.0.0 compatibility
pytest.raises() returns exception info not the exception itself. They
changed implementation of exception info, so now .value property must be
used to get the exception instance and have proper output from str()
method.

https://github.com/pytest-dev/pytest/issues/5412

Signed-off-by: Martin Bašti <mbasti@redhat.com>
2019-07-17 18:56:18 +03:00
Martin Bašti
7e640f804c Logging: Handle auth type case insensitively
According RFC-7617 (inherited from RFC-2978) schema and parameter names are handled
case insensitively:
```
Note that both scheme and parameter names are matched case-
insensitively.
```

Signed-off-by: Martin Bašti <mbasti@redhat.com>
2019-07-17 18:56:18 +03:00
Brett Randall
b014fa78ee Various code improvements contributed by dilyanpalauzov.
These were originally based on 19.9.0 code and were rebased
with conflicts resolved.

Fixed #1690.

Co-Authored-By: dilyanpalauzov <git-dpa@aegee.org>
Signed-off-by: Brett Randall <javabrett@gmail.com>
2019-07-17 07:32:11 +10: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
Masashi SHIBATA
b15712924f Import unittest.mock unconditionally (#2050) 2019-05-28 16:09:44 +03:00
Masashi SHIBATA
c435341e66 Remove fallback for types.SimpleNamespace (#2049) 2019-05-28 16:05:51 +03:00
Masashi SHIBATA
a13a2096ed Use SourceFileLoader instead instead of execfile_ (#2046) 2019-05-26 22:09:52 +03:00
dblack
96dde54af1 optional datadog tags for statsd metrics 2019-04-27 18:49:47 -07:00
Brett Randall
879651bb6f Header values are encoded using latin-1, not ascii.
This commit reverts one aspect changed by 5f4ebd2eb2b08783a5fbefe79d09fcb3fc1fbc73 (#1151);
header-values are again encoded as latin-1 and not ascii. Test is restored but uses
a latin-1-mappable test-character, not a general utf8 character.

Fixed #1778.

Signed-off-by: Brett Randall <javabrett@gmail.com>
2019-04-18 04:23:19 +03:00
Hasan Ramezani
2b07f2be28 Rewrite parse_address util and add one test 2019-03-16 15:07:53 -07:00
Marat
a8963ef1a5 Remove redundant super() arguments 2019-03-16 15:00:07 -07:00
Benoit Chesneau
97a45805f8
remove gaiohttp worker (#1971)
* remove gaiohttp worker

worker is deprecated and won't work on latest version.
2019-01-24 23:05:28 +01:00
Daniel Pope
2ea5fbdc86 Use Python's default SSL cipher list by default (#1970) 2019-01-24 22:41:04 +01: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
Konstantin vz'One Enchant
927fb2ba02 Prevent removal unix socket for reuse_port (#1887)
If you have two (or more) instances of gunicorn that use `reuse-port`
and bind to single unix socket all work until one of gunicorn will
stopped. Because the first stopped removes unix socket file and other
instances can't longer process requests.
2018-10-02 13:25:35 +02:00
Randall Leeds
e179dc2575 Support str and bytes for UNIX socket addresses (#1882)
Some systems report UNIX socket addresses as bytes while others will
report it as a unicode string type. This patch improves socket type
detection code to support both.

Fix #1861
2018-09-24 08:57:53 +02:00
Hugo
e974f30517 Drop support for Python 2
Co-Authored-By: Dustin Ingram <di@users.noreply.github.com>
Co-Authored-By: Berker Peksag <berker.peksag@gmail.com>
2018-08-01 15:31:17 +03:00
Hugo
78208c8c32 Drop support for EOL Python 3.2 and 3.3 (#1839) 2018-07-29 14:07:36 +03:00
Diego Oliveira
43e31c366b Fix gaiohttp worker 2018-05-26 10:42:15 -03:00
Yun Xu
0af5641117 fixing zero bytes case in atoms access log 2018-05-18 13:15:03 -07: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
Jacob Eiting
f12ef22281 Handle UnicodeDecodeError in _get_user() (#1684)
Fixes #1683
2018-01-18 04:29:25 +03:00
Berker Peksag
76eaa0805b Fix various warnings and errors reported by pylint 2018-01-11 09:59:31 +03:00
Randall Leeds
b07532be75 Forbid contradictory secure scheme headers
When a request specifies contradictory secure scheme headers, raise a
parse error.
2018-01-10 12:10:35 -08:00
YuppY
5953148573 Do not strip leading slash from path (#1511)
Fixes #1512
2017-12-28 11:32:47 +03:00
Hasan Ramezani
70fd6193f6 Add some tests for to_bytestring util 2017-12-11 22:50:06 +03:30
Juan Julián Merelo Guervós
6ba2ebe545 Make "failed to find application" more informative (#1648)
Co-Authored-By: Luis Liñán Villafranca <luislivilla@gmail.com>

Fixes #1647
2017-11-24 10:42:03 +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
Hasan Ramezani
595ca263dd Add tests for util.{http_date,is_ipv6,warn} (#1630) 2017-10-22 21:20:19 +03:00
Hasan Ramezani
0ceb00e4ad Improve test coverage of util.parse_address() (#1629) 2017-10-22 19:55:44 +03:00
Hasan Ramezani
81efa40da7 Improve parsing of 'unix://' addresses in parse_address (#1623) 2017-10-16 09:44:00 +03:00
Oliver Bristow
6a2a8b3298 Fix #1576 - config file/module in GUNICORN_CMD_ARGS 2017-09-16 11:41:57 +01:00