diff options
author | synodriver <diguohuangjiajinweijun@gmail.com> | 2023-05-27 22:18:46 +0800 |
---|---|---|
committer | Andrew Clayton <a.clayton@nginx.com> | 2023-06-01 00:25:03 +0100 |
commit | 93ed66958e11b40cc06dcb32fc8e623967af6347 (patch) | |
tree | 720ddd839d0594a0ffc6fb36e8c8a71fcd42b2a9 /src/python/nxt_python_asgi_str.h | |
parent | 31ff94add9c4043a753683d9e8b68733c69aa1ac (diff) | |
download | unit-93ed66958e11b40cc06dcb32fc8e623967af6347.tar.gz unit-93ed66958e11b40cc06dcb32fc8e623967af6347.tar.bz2 |
Python: Add ASGI lifespan state support.
Lifespan state is a special dict in asgi lifespan scope, which allow
applications to persist data from the lifespan cycle to request/response
handling. The scope["state"] namespace provides a place to store these
sorts of things. The server will ensure that a shallow copy of the
namespace is passed into each subsequent request/response call into the
application.
Some frameworks are already taking advantage of this feature, for
example, starlette, and without this feature they wouldn't work
properly.
Signed-off-by: synodriver <diguohuangjiajinweijun@gmail.com>
Reviewed-by: Andrew Clayton <a.clayton@nginx.com>
[ Minor code tweaks to avoid lines > 80 chars, static a function and
re-work the PyMemberDef structure initialisation for Python <3.7
and -Wwrite-strings compatibility - Andrew ]
Tested-by: <https://github.com/synodriver>
Tested-by: <https://github.com/hawiliali>
Closes: <https://github.com/nginx/unit/issues/864>
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
Diffstat (limited to 'src/python/nxt_python_asgi_str.h')
-rw-r--r-- | src/python/nxt_python_asgi_str.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/python/nxt_python_asgi_str.h b/src/python/nxt_python_asgi_str.h index 92969fd2..3c7a3ed9 100644 --- a/src/python/nxt_python_asgi_str.h +++ b/src/python/nxt_python_asgi_str.h @@ -50,6 +50,7 @@ extern PyObject *nxt_py_subprotocol_str; extern PyObject *nxt_py_subprotocols_str; extern PyObject *nxt_py_text_str; extern PyObject *nxt_py_type_str; +extern PyObject *nxt_py_state_str; extern PyObject *nxt_py_version_str; extern PyObject *nxt_py_websocket_str; extern PyObject *nxt_py_websocket_accept_str; |