File tree Expand file tree Collapse file tree 1 file changed +47
-6
lines changed Expand file tree Collapse file tree 1 file changed +47
-6
lines changed Original file line number Diff line number Diff line change 11package caddy2proxyprotocol
22
3- import "github.com/caddyserver/caddy/v2"
4-
5- var (
6- _ = caddy .Provisioner (& Wrapper {})
7- _ = caddy .Module (& Wrapper {})
8- _ = caddy .ListenerWrapper (& Wrapper {})
3+ import (
4+ "github.com/caddyserver/caddy/v2"
5+ "github.com/caddyserver/caddy/v2/caddyconfig/caddyfile"
96)
107
118func init () {
@@ -18,3 +15,47 @@ func (Wrapper) CaddyModule() caddy.ModuleInfo {
1815 New : func () caddy.Module { return new (Wrapper ) },
1916 }
2017}
18+
19+ // UnmarshalCaddyfile sets up the listener wrapper from Caddyfile tokens. Syntax:
20+ //
21+ // proxy_protocol {
22+ // timeout <duration>
23+ // allow <IPs...>
24+ // }
25+ //
26+ func (w * Wrapper ) UnmarshalCaddyfile (d * caddyfile.Dispenser ) error {
27+ for d .Next () {
28+ // No same-line options are supported
29+ if d .NextArg () {
30+ return d .ArgErr ()
31+ }
32+
33+ for d .NextBlock (0 ) {
34+ switch d .Val () {
35+ case "timeout" :
36+ if ! d .NextArg () {
37+ return d .ArgErr ()
38+ }
39+ dur , err := caddy .ParseDuration (d .Val ())
40+ if err != nil {
41+ return d .Errf ("parsing proxy_protocol timeout duration: %v" , err )
42+ }
43+ w .Timeout = caddy .Duration (dur )
44+
45+ case "allow" :
46+ w .Allow = append (w .Allow , d .RemainingArgs ()... )
47+
48+ default :
49+ return d .ArgErr ()
50+ }
51+ }
52+ }
53+ return nil
54+ }
55+
56+ var (
57+ _ caddy.Provisioner = (* Wrapper )(nil )
58+ _ caddy.Module = (* Wrapper )(nil )
59+ _ caddy.ListenerWrapper = (* Wrapper )(nil )
60+ _ caddyfile.Unmarshaler = (* Wrapper )(nil )
61+ )
You can’t perform that action at this time.
0 commit comments