mirror of
https://github.com/nginx/nginx.git
synced 2026-05-13 09:36:42 +00:00
Stream pass: disabled passing from or to udp.
Passing from udp was not possible for the most part due to preread buffer restriction. Passing to udp could occasionally work, but the connection would still be bound to the original listen rbtree, which prevented it from being deleted on connection closure.
This commit is contained in:
parent
6f7494081a
commit
489e1e6191
1 changed files with 9 additions and 0 deletions
|
|
@ -83,6 +83,11 @@ ngx_stream_pass_handler(ngx_stream_session_t *s)
|
|||
|
||||
c->log->action = "passing connection to port";
|
||||
|
||||
if (c->type == SOCK_DGRAM) {
|
||||
ngx_log_error(NGX_LOG_ERR, c->log, 0, "cannot pass udp connection");
|
||||
goto failed;
|
||||
}
|
||||
|
||||
if (c->buffer && c->buffer->pos != c->buffer->last) {
|
||||
ngx_log_error(NGX_LOG_ERR, c->log, 0,
|
||||
"cannot pass connection with preread data");
|
||||
|
|
@ -217,6 +222,10 @@ ngx_stream_pass_cleanup(void *data)
|
|||
static ngx_int_t
|
||||
ngx_stream_pass_match(ngx_listening_t *ls, ngx_addr_t *addr)
|
||||
{
|
||||
if (ls->type == SOCK_DGRAM) {
|
||||
return NGX_DECLINED;
|
||||
}
|
||||
|
||||
if (!ls->wildcard) {
|
||||
return ngx_cmp_sockaddr(ls->sockaddr, ls->socklen,
|
||||
addr->sockaddr, addr->socklen, 1);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue