chore: prepare release 25.0.2

- Bump version to 25.0.2
- Update copyright year to 2026 in LICENSE and NOTICE
- Add license headers to all Python source files
- Add changelog entry for 25.0.2
This commit is contained in:
Benoit Chesneau 2026-02-06 08:21:18 +01:00
parent 026167acc9
commit 95b7ffeeaa
191 changed files with 801 additions and 3 deletions

View File

@ -1,4 +1,4 @@
2009-2024 (c) Benoît Chesneau <benoitc@gunicorn.org> 2009-2026 (c) Benoît Chesneau <benoitc@gunicorn.org>
2009-2015 (c) Paul J. Davis <paul.joseph.davis@gmail.com> 2009-2015 (c) Paul J. Davis <paul.joseph.davis@gmail.com>
Permission is hereby granted, free of charge, to any person Permission is hereby granted, free of charge, to any person

2
NOTICE
View File

@ -1,6 +1,6 @@
Gunicorn Gunicorn
2009-2024 (c) Benoît Chesneau <benoitc@gunicorn.org> 2009-2026 (c) Benoît Chesneau <benoitc@gunicorn.org>
2009-2015 (c) Paul J. Davis <paul.joseph.davis@gmail.com> 2009-2015 (c) Paul J. Davis <paul.joseph.davis@gmail.com>
Gunicorn is released under the MIT license. See the LICENSE Gunicorn is released under the MIT license. See the LICENSE

4
benchmarks/run_benchmark.py Executable file → Normal file
View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
#!/usr/bin/env python3 #!/usr/bin/env python3
""" """
Benchmark script for gunicorn gthread worker. Benchmark script for gunicorn gthread worker.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
# Simple WSGI app for benchmarking # Simple WSGI app for benchmarking
def application(environ, start_response): def application(environ, start_response):

View File

@ -1,6 +1,33 @@
<span id="news-2026"></span> <span id="news-2026"></span>
# Changelog - 2026 # Changelog - 2026
## 25.0.2 - 2026-02-06
### Bug Fixes
- Fix ASGI concurrent request failures through nginx proxy by normalizing
sockaddr tuples to handle both 2-tuple (IPv4) and 4-tuple (IPv6) formats
([PR #3485](https://github.com/benoitc/gunicorn/pull/3485))
- Fix graceful disconnect handling for ASGI worker to properly handle
client disconnects without raising exceptions
([PR #3485](https://github.com/benoitc/gunicorn/pull/3485))
- Fix lazy import of dirty module for gevent compatibility - prevents
import errors when concurrent.futures is imported before gevent monkey-patching
([PR #3483](https://github.com/benoitc/gunicorn/pull/3483))
### Changes
- Refactor: Extract `_normalize_sockaddr` utility function for consistent
socket address handling across workers
- Add license headers to all Python source files
- Update copyright year to 2026 in LICENSE and NOTICE files
---
## 25.0.1 - 2026-02-02 ## 25.0.1 - 2026-02-02
### Bug Fixes ### Bug Fixes

View File

@ -1,6 +1,33 @@
<span id="news"></span> <span id="news"></span>
# Changelog # Changelog
## 25.0.2 - 2026-02-06
### Bug Fixes
- Fix ASGI concurrent request failures through nginx proxy by normalizing
sockaddr tuples to handle both 2-tuple (IPv4) and 4-tuple (IPv6) formats
([PR #3485](https://github.com/benoitc/gunicorn/pull/3485))
- Fix graceful disconnect handling for ASGI worker to properly handle
client disconnects without raising exceptions
([PR #3485](https://github.com/benoitc/gunicorn/pull/3485))
- Fix lazy import of dirty module for gevent compatibility - prevents
import errors when concurrent.futures is imported before gevent monkey-patching
([PR #3483](https://github.com/benoitc/gunicorn/pull/3483))
### Changes
- Refactor: Extract `_normalize_sockaddr` utility function for consistent
socket address handling across workers
- Add license headers to all Python source files
- Update copyright year to 2026 in LICENSE and NOTICE files
---
## 25.0.1 - 2026-02-02 ## 25.0.1 - 2026-02-02
### Bug Fixes ### Bug Fixes

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from importlib import import_module from importlib import import_module
def define_env(env): def define_env(env):

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
# #
# An example of how to pass information from the command line to # An example of how to pass information from the command line to
# a WSGI app. Only applies to the native WSGI workers used by # a WSGI app. Only applies to the native WSGI workers used by

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
import tempfile import tempfile
files = [] files = []
def app(environ, start_response): def app(environ, start_response):

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
raise RuntimeError("Bad app!") raise RuntimeError("Bad app!")
def app(environ, start_response): def app(environ, start_response):

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
Web Application - FastAPI app demonstrating Celery replacement. Web Application - FastAPI app demonstrating Celery replacement.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
Gunicorn Configuration - Celery Replacement Example Gunicorn Configuration - Celery Replacement Example

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
Task Workers - Celery Replacement using Gunicorn Dirty Arbiters Task Workers - Celery Replacement using Gunicorn Dirty Arbiters

View File

@ -1 +1,5 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
# Tests package # Tests package

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
Pytest configuration for Celery Replacement tests. Pytest configuration for Celery Replacement tests.
""" """

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
Integration Tests for Celery Replacement Example Integration Tests for Celery Replacement Example

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
Unit Tests for Task Workers Unit Tests for Task Workers

View File

@ -0,0 +1,4 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.

View File

@ -0,0 +1,4 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
Example Dirty Application - Simulates ML Model Loading and Inference Example Dirty Application - Simulates ML Model Loading and Inference

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
Gunicorn configuration for Dirty Workers Example Gunicorn configuration for Dirty Workers Example

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
#!/usr/bin/env python #!/usr/bin/env python
""" """
Test script to demonstrate Dirty App functionality directly. Test script to demonstrate Dirty App functionality directly.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
#!/usr/bin/env python #!/usr/bin/env python
""" """
Test script to demonstrate the Dirty Protocol layer. Test script to demonstrate the Dirty Protocol layer.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
#!/usr/bin/env python #!/usr/bin/env python
""" """
Integration test demonstrating DirtyWorker execution. Integration test demonstrating DirtyWorker execution.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
Example WSGI Application that uses Dirty Workers Example WSGI Application that uses Dirty Workers

View File

@ -1 +1,5 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
# Embedding service package # Embedding service package

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.dirty.app import DirtyApp from gunicorn.dirty.app import DirtyApp

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
bind = "0.0.0.0:8000" bind = "0.0.0.0:8000"
workers = 2 workers = 2
worker_class = "asgi" worker_class = "asgi"

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from fastapi import FastAPI from fastapi import FastAPI
from pydantic import BaseModel from pydantic import BaseModel
from gunicorn.dirty.client import get_dirty_client from gunicorn.dirty.client import get_dirty_client

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
import os import os
import requests import requests
import numpy as np import numpy as np

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
# Sample Gunicorn configuration file. # Sample Gunicorn configuration file.
# #

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
import cherrypy import cherrypy

4
examples/frameworks/django/testing/manage.py Executable file → Normal file
View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
#!/usr/bin/env python #!/usr/bin/env python
import os, sys import os, sys

View File

@ -0,0 +1,4 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.

View File

@ -0,0 +1,4 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.

View File

@ -0,0 +1,4 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from multiprocessing import Process, Queue from multiprocessing import Process, Queue
import requests import requests

View File

@ -0,0 +1,4 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
This file demonstrates two different styles of tests (one doctest and one This file demonstrates two different styles of tests (one doctest and one
unittest). These will both pass when you run "manage.py test". unittest). These will both pass when you run "manage.py test".

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from django.conf.urls import url from django.conf.urls import url
from . import views from . import views

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
import csv import csv
import io import io
import os import os

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
# Django settings for testing project. # Django settings for testing project.
DEBUG = True DEBUG = True

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from django.conf.urls import include, url from django.conf.urls import include, url
# Uncomment the next two lines to enable the admin: # Uncomment the next two lines to enable the admin:

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
WSGI config for testing project. WSGI config for testing project.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
import io import io
from flask import Flask, send_file from flask import Flask, send_file

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
# Run with: # Run with:
# #
# $ gunicorn flaskapp:app # $ gunicorn flaskapp:app

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
# Example command to run the example: # Example command to run the example:
# #
# $ gunicorn flaskapp_aiohttp_wsgi:aioapp -k aiohttp.worker.GunicornWebWorker # $ gunicorn flaskapp_aiohttp_wsgi:aioapp -k aiohttp.worker.GunicornWebWorker

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from pyramid.config import Configurator from pyramid.config import Configurator
from pyramid.response import Response from pyramid.response import Response

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
# Run with # Run with
# #
# $ gunicorn webpyapp:app # $ gunicorn webpyapp:app

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
# Gunicorn configuration for HTTP/2 features example # Gunicorn configuration for HTTP/2 features example
bind = "0.0.0.0:8443" bind = "0.0.0.0:8443"

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
#!/usr/bin/env python #!/usr/bin/env python
""" """
Test script for HTTP/2 features example. Test script for HTTP/2 features example.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
Example WSGI application demonstrating HTTP/2 with gevent worker. Example WSGI application demonstrating HTTP/2 with gevent worker.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
Gunicorn configuration for HTTP/2 with gevent worker. Gunicorn configuration for HTTP/2 with gevent worker.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
#!/usr/bin/env python #!/usr/bin/env python
""" """
Tests for HTTP/2 with gevent example. Tests for HTTP/2 with gevent example.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
import logging import logging
log = logging.getLogger(__name__) log = logging.getLogger(__name__)

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
Use this config file in your script like this: Use this config file in your script like this:

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
#!/usr/bin/env python #!/usr/bin/env python
# #
# An example of a standalone application using the internal API of Gunicorn. # An example of a standalone application using the internal API of Gunicorn.

View File

@ -1,2 +1,6 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
# Streaming Chat Example # Streaming Chat Example
# Demonstrates dirty worker streaming with simulated LLM token generation # Demonstrates dirty worker streaming with simulated LLM token generation

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
import time import time
import random import random
from gunicorn.dirty.app import DirtyApp from gunicorn.dirty.app import DirtyApp

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
bind = "0.0.0.0:8000" bind = "0.0.0.0:8000"
workers = 2 workers = 2
worker_class = "asgi" worker_class = "asgi"

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
import json import json
from fastapi import FastAPI from fastapi import FastAPI
from fastapi.responses import StreamingResponse, HTMLResponse from fastapi.responses import StreamingResponse, HTMLResponse

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
"""Integration tests for the streaming chat example.""" """Integration tests for the streaming chat example."""
import json import json

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
import collections import collections
import errno import errno
import re import re

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
import signal import signal
import commands import commands
import threading import threading

View File

@ -2,7 +2,7 @@
# This file is part of gunicorn released under the MIT license. # This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information. # See the NOTICE for more information.
version_info = (25, 0, 1) version_info = (25, 0, 2)
__version__ = ".".join([str(v) for v in version_info]) __version__ = ".".join([str(v) for v in version_info])
SERVER = "gunicorn" SERVER = "gunicorn"
SERVER_SOFTWARE = "%s/%s" % (SERVER, __version__) SERVER_SOFTWARE = "%s/%s" % (SERVER, __version__)

View File

@ -0,0 +1,4 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
"""Generate the Markdown settings reference for MkDocs.""" """Generate the Markdown settings reference for MkDocs."""
from __future__ import annotations from __future__ import annotations

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
#!/usr/bin/env python #!/usr/bin/env python
# Usage: git log --format="%an <%ae>" | python update_thanks.py # Usage: git log --format="%an <%ae>" | python update_thanks.py
# You will get a result.txt file, you can work with the file (update, remove, ...) # You will get a result.txt file, you can work with the file (update, remove, ...)

View File

@ -0,0 +1,4 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
bind = "unix:/tmp/bar/baz" bind = "unix:/tmp/bar/baz"
workers = 3 workers = 3
proc_name = "fooey" proc_name = "fooey"

View File

@ -1 +1,5 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
proc_name = "not-fooey" proc_name = "not-fooey"

View File

@ -1 +1,5 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
wsgi_app = "app1:app1" wsgi_app = "app1:app1"

View File

@ -1 +1,5 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
"""Docker-based integration tests package.""" """Docker-based integration tests package."""

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
"""Simple ASGI test application for HTTP protocol testing.""" """Simple ASGI test application for HTTP protocol testing."""

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
"""Pytest fixtures for ASGI compliance Docker integration tests.""" """Pytest fixtures for ASGI compliance Docker integration tests."""
import subprocess import subprocess

View File

@ -1 +1,5 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
"""HTTP/2 Docker integration tests package.""" """HTTP/2 Docker integration tests package."""

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
"""Test WSGI application for HTTP/2 Docker integration tests.""" """Test WSGI application for HTTP/2 Docker integration tests."""
import json import json

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
"""Pytest fixtures for HTTP/2 Docker integration tests.""" """Pytest fixtures for HTTP/2 Docker integration tests."""
import subprocess import subprocess

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
"""HTTP/2 Docker integration tests. """HTTP/2 Docker integration tests.
These tests verify HTTP/2 functionality with real connections to gunicorn These tests verify HTTP/2 functionality with real connections to gunicorn

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
"""Simple ASGI test application for uWSGI protocol testing.""" """Simple ASGI test application for uWSGI protocol testing."""

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
Test WSGI application for uWSGI protocol integration tests. Test WSGI application for uWSGI protocol integration tests.

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
pytest fixtures for uWSGI Docker integration tests. pytest fixtures for uWSGI Docker integration tests.
""" """

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
""" """
Integration tests for gunicorn's uWSGI binary protocol with nginx. Integration tests for gunicorn's uWSGI binary protocol with nginx.

View File

@ -1,2 +1,6 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.http.errors import NoMoreData from gunicorn.http.errors import NoMoreData
request = NoMoreData request = NoMoreData

View File

@ -1,2 +1,6 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.http.errors import InvalidRequestLine from gunicorn.http.errors import InvalidRequestLine
request = InvalidRequestLine request = InvalidRequestLine

View File

@ -1,2 +1,6 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.http.errors import InvalidRequestLine from gunicorn.http.errors import InvalidRequestLine
request = InvalidRequestLine request = InvalidRequestLine

View File

@ -1,2 +1,6 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.http.errors import InvalidRequestMethod from gunicorn.http.errors import InvalidRequestMethod
request = InvalidRequestMethod request = InvalidRequestMethod

View File

@ -1,2 +1,6 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.http.errors import InvalidRequestMethod from gunicorn.http.errors import InvalidRequestMethod
request = InvalidRequestMethod request = InvalidRequestMethod

View File

@ -1,2 +1,6 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.http.errors import InvalidHTTPVersion from gunicorn.http.errors import InvalidHTTPVersion
request = InvalidHTTPVersion request = InvalidHTTPVersion

View File

@ -1,2 +1,6 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.http.errors import InvalidHeaderName from gunicorn.http.errors import InvalidHeaderName
request = InvalidHeaderName request = InvalidHeaderName

View File

@ -1,2 +1,6 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.http.errors import LimitRequestLine from gunicorn.http.errors import LimitRequestLine
request = LimitRequestLine request = LimitRequestLine

View File

@ -1,2 +1,6 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.http.errors import LimitRequestHeaders from gunicorn.http.errors import LimitRequestHeaders
request = LimitRequestHeaders request = LimitRequestHeaders

View File

@ -1,2 +1,6 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.http.errors import LimitRequestHeaders from gunicorn.http.errors import LimitRequestHeaders
request = LimitRequestHeaders request = LimitRequestHeaders

View File

@ -1,2 +1,6 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.http.errors import LimitRequestHeaders from gunicorn.http.errors import LimitRequestHeaders
request = LimitRequestHeaders request = LimitRequestHeaders

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.config import Config from gunicorn.config import Config
from gunicorn.http.errors import LimitRequestHeaders from gunicorn.http.errors import LimitRequestHeaders

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.config import Config from gunicorn.config import Config
from gunicorn.http.errors import LimitRequestHeaders from gunicorn.http.errors import LimitRequestHeaders

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.config import Config from gunicorn.config import Config
from gunicorn.http.errors import LimitRequestHeaders from gunicorn.http.errors import LimitRequestHeaders

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.config import Config from gunicorn.config import Config
from gunicorn.http.errors import LimitRequestHeaders from gunicorn.http.errors import LimitRequestHeaders

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.http.errors import InvalidHeader from gunicorn.http.errors import InvalidHeader
request = InvalidHeader request = InvalidHeader

View File

@ -1,3 +1,7 @@
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
from gunicorn.http.errors import InvalidHeader from gunicorn.http.errors import InvalidHeader
request = InvalidHeader request = InvalidHeader

Some files were not shown because too many files have changed in this diff Show More