mirror of
https://github.com/caddyserver/caddy.git
synced 2025-06-05 12:00:29 +08:00
fastcgi: Add timeouts support to Caddyfile adapter (#3842)
* fastcgi: Add timeouts support to Caddyfile adapter * fastcgi: Use tabs instead of spaces
This commit is contained in:
@ -40,6 +40,9 @@ func init() {
|
||||
// split <at>
|
||||
// env <key> <value>
|
||||
// resolve_root_symlink
|
||||
// dial_timeout <duration>
|
||||
// read_timeout <duration>
|
||||
// write_timeout <duration>
|
||||
// }
|
||||
//
|
||||
func (t *Transport) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
|
||||
@ -69,8 +72,41 @@ func (t *Transport) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
|
||||
t.EnvVars[args[0]] = args[1]
|
||||
|
||||
case "resolve_root_symlink":
|
||||
if d.NextArg() {
|
||||
return d.ArgErr()
|
||||
}
|
||||
t.ResolveRootSymlink = true
|
||||
|
||||
case "dial_timeout":
|
||||
if !d.NextArg() {
|
||||
return d.ArgErr()
|
||||
}
|
||||
dur, err := caddy.ParseDuration(d.Val())
|
||||
if err != nil {
|
||||
return d.Errf("bad timeout value %s: %v", d.Val(), err)
|
||||
}
|
||||
t.DialTimeout = caddy.Duration(dur)
|
||||
|
||||
case "read_timeout":
|
||||
if !d.NextArg() {
|
||||
return d.ArgErr()
|
||||
}
|
||||
dur, err := caddy.ParseDuration(d.Val())
|
||||
if err != nil {
|
||||
return d.Errf("bad timeout value %s: %v", d.Val(), err)
|
||||
}
|
||||
t.ReadTimeout = caddy.Duration(dur)
|
||||
|
||||
case "write_timeout":
|
||||
if !d.NextArg() {
|
||||
return d.ArgErr()
|
||||
}
|
||||
dur, err := caddy.ParseDuration(d.Val())
|
||||
if err != nil {
|
||||
return d.Errf("bad timeout value %s: %v", d.Val(), err)
|
||||
}
|
||||
t.WriteTimeout = caddy.Duration(dur)
|
||||
|
||||
default:
|
||||
return d.Errf("unrecognized subdirective %s", d.Val())
|
||||
}
|
||||
@ -208,6 +244,42 @@ func parsePHPFastCGI(h httpcaddyfile.Helper) ([]httpcaddyfile.ConfigValue, error
|
||||
dispenser.Delete()
|
||||
}
|
||||
fcgiTransport.ResolveRootSymlink = true
|
||||
|
||||
case "dial_timeout":
|
||||
if !dispenser.NextArg() {
|
||||
return nil, dispenser.ArgErr()
|
||||
}
|
||||
dur, err := caddy.ParseDuration(dispenser.Val())
|
||||
if err != nil {
|
||||
return nil, dispenser.Errf("bad timeout value %s: %v", dispenser.Val(), err)
|
||||
}
|
||||
fcgiTransport.DialTimeout = caddy.Duration(dur)
|
||||
dispenser.Delete()
|
||||
dispenser.Delete()
|
||||
|
||||
case "read_timeout":
|
||||
if !dispenser.NextArg() {
|
||||
return nil, dispenser.ArgErr()
|
||||
}
|
||||
dur, err := caddy.ParseDuration(dispenser.Val())
|
||||
if err != nil {
|
||||
return nil, dispenser.Errf("bad timeout value %s: %v", dispenser.Val(), err)
|
||||
}
|
||||
fcgiTransport.ReadTimeout = caddy.Duration(dur)
|
||||
dispenser.Delete()
|
||||
dispenser.Delete()
|
||||
|
||||
case "write_timeout":
|
||||
if !dispenser.NextArg() {
|
||||
return nil, dispenser.ArgErr()
|
||||
}
|
||||
dur, err := caddy.ParseDuration(dispenser.Val())
|
||||
if err != nil {
|
||||
return nil, dispenser.Errf("bad timeout value %s: %v", dispenser.Val(), err)
|
||||
}
|
||||
fcgiTransport.WriteTimeout = caddy.Duration(dur)
|
||||
dispenser.Delete()
|
||||
dispenser.Delete()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user