Mercurial > hg > nginx
view src/os/unix/ngx_setproctitle.h @ 8795:278ab0ed24f2 quic
HTTP/3: generate more H3_FRAME_UNEXPECTED.
As per quic-http-34, these are the cases when this error should be generated:
If an endpoint receives a second SETTINGS frame
on the control stream, the endpoint MUST respond with a connection
error of type H3_FRAME_UNEXPECTED
SETTINGS frames MUST NOT be sent on any stream other than the control
stream. If an endpoint receives a SETTINGS frame on a different
stream, the endpoint MUST respond with a connection error of type
H3_FRAME_UNEXPECTED.
A client MUST NOT send a PUSH_PROMISE frame. A server MUST treat the
receipt of a PUSH_PROMISE frame as a connection error of type
H3_FRAME_UNEXPECTED; see Section 8.
The MAX_PUSH_ID frame is always sent on the control stream. Receipt
of a MAX_PUSH_ID frame on any other stream MUST be treated as a
connection error of type H3_FRAME_UNEXPECTED.
Receipt of an invalid sequence of frames MUST be treated as a
connection error of type H3_FRAME_UNEXPECTED; see Section 8. In
particular, a DATA frame before any HEADERS frame, or a HEADERS or
DATA frame after the trailing HEADERS frame, is considered invalid.
A CANCEL_PUSH frame is sent on the control stream. Receiving a
CANCEL_PUSH frame on a stream other than the control stream MUST be
treated as a connection error of type H3_FRAME_UNEXPECTED.
The GOAWAY frame is always sent on the control stream.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Fri, 11 Jun 2021 12:11:08 +0300 |
parents | 16013b71feed |
children |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_SETPROCTITLE_H_INCLUDED_ #define _NGX_SETPROCTITLE_H_INCLUDED_ #if (NGX_HAVE_SETPROCTITLE) /* FreeBSD, NetBSD, OpenBSD */ #define ngx_init_setproctitle(log) NGX_OK #define ngx_setproctitle(title) setproctitle("%s", title) #else /* !NGX_HAVE_SETPROCTITLE */ #if !defined NGX_SETPROCTITLE_USES_ENV #if (NGX_SOLARIS) #define NGX_SETPROCTITLE_USES_ENV 1 #define NGX_SETPROCTITLE_PAD ' ' ngx_int_t ngx_init_setproctitle(ngx_log_t *log); void ngx_setproctitle(char *title); #elif (NGX_LINUX) || (NGX_DARWIN) #define NGX_SETPROCTITLE_USES_ENV 1 #define NGX_SETPROCTITLE_PAD '\0' ngx_int_t ngx_init_setproctitle(ngx_log_t *log); void ngx_setproctitle(char *title); #else #define ngx_init_setproctitle(log) NGX_OK #define ngx_setproctitle(title) #endif /* OSes */ #endif /* NGX_SETPROCTITLE_USES_ENV */ #endif /* NGX_HAVE_SETPROCTITLE */ #endif /* _NGX_SETPROCTITLE_H_INCLUDED_ */