mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-28 14:43:48 +03:00
reverseproxy: fix parsing Caddyfile fails for unlimited request/response buffers (#5828)
This commit is contained in:
parent
2a6859a5e4
commit
b245ecd325
2 changed files with 70 additions and 5 deletions
|
@ -0,0 +1,58 @@
|
||||||
|
https://example.com {
|
||||||
|
reverse_proxy https://localhost:54321 {
|
||||||
|
request_buffers unlimited
|
||||||
|
response_buffers unlimited
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
----------
|
||||||
|
{
|
||||||
|
"apps": {
|
||||||
|
"http": {
|
||||||
|
"servers": {
|
||||||
|
"srv0": {
|
||||||
|
"listen": [
|
||||||
|
":443"
|
||||||
|
],
|
||||||
|
"routes": [
|
||||||
|
{
|
||||||
|
"match": [
|
||||||
|
{
|
||||||
|
"host": [
|
||||||
|
"example.com"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"handle": [
|
||||||
|
{
|
||||||
|
"handler": "subroute",
|
||||||
|
"routes": [
|
||||||
|
{
|
||||||
|
"handle": [
|
||||||
|
{
|
||||||
|
"handler": "reverse_proxy",
|
||||||
|
"request_buffers": -1,
|
||||||
|
"response_buffers": -1,
|
||||||
|
"transport": {
|
||||||
|
"protocol": "http",
|
||||||
|
"tls": {}
|
||||||
|
},
|
||||||
|
"upstreams": [
|
||||||
|
{
|
||||||
|
"dial": "localhost:54321"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"terminal": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -551,17 +551,24 @@ func (h *Handler) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
|
||||||
if !d.NextArg() {
|
if !d.NextArg() {
|
||||||
return d.ArgErr()
|
return d.ArgErr()
|
||||||
}
|
}
|
||||||
size, err := humanize.ParseBytes(d.Val())
|
val := d.Val()
|
||||||
if err != nil {
|
var size int64
|
||||||
return d.Errf("invalid byte size '%s': %v", d.Val(), err)
|
if val == "unlimited" {
|
||||||
|
size = -1
|
||||||
|
} else {
|
||||||
|
usize, err := humanize.ParseBytes(val)
|
||||||
|
if err != nil {
|
||||||
|
return d.Errf("invalid byte size '%s': %v", val, err)
|
||||||
|
}
|
||||||
|
size = int64(usize)
|
||||||
}
|
}
|
||||||
if d.NextArg() {
|
if d.NextArg() {
|
||||||
return d.ArgErr()
|
return d.ArgErr()
|
||||||
}
|
}
|
||||||
if subdir == "request_buffers" {
|
if subdir == "request_buffers" {
|
||||||
h.RequestBuffers = int64(size)
|
h.RequestBuffers = size
|
||||||
} else if subdir == "response_buffers" {
|
} else if subdir == "response_buffers" {
|
||||||
h.ResponseBuffers = int64(size)
|
h.ResponseBuffers = size
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: These three properties are deprecated; remove them sometime after v2.6.4
|
// TODO: These three properties are deprecated; remove them sometime after v2.6.4
|
||||||
|
|
Loading…
Reference in a new issue