@marcel91200 / caddy Mirror · read-only / commits / bca610fb
Fork 0

Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

Mirrored from https://github.com/Slazee/caddy.git

Synced Nov 14, 05:15 UTC

httpcaddyfile: Minor fixes to parsing storage options

Matthew Holt committed May 1, 2020 at 09:34 UTC bca610fbde82c4b45526dd526d7ddfa6e3bdac70
2 files changed +26 -10
caddyconfig/httpcaddyfile/options.go
+3 -4
@@ -136,14 +136,13 @@ func parseOptOrder(d *caddyfile.Dispenser) ([]string, error) {
136 }
137
138 func parseOptStorage(d *caddyfile.Dispenser) (caddy.StorageConverter, error) {
139 - if !d.Next() {
139 + if !d.Next() { // consume option name
140 return nil, d.ArgErr()
141 }
142 - args := d.RemainingArgs()
143 - if len(args) != 1 {
142 + if !d.Next() { // get storage module name
143 return nil, d.ArgErr()
144 }
146 - modName := args[0]
145 + modName := d.Val()
146 mod, err := caddy.GetModule("caddy.storage." + modName)
147 if err != nil {
148 return nil, d.Errf("getting storage module '%s': %v", modName, err)
modules/filestorage/filestorage.go
+23 -6
@@ -48,15 +48,32 @@ func (s *FileStorage) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
48 if !d.Next() {
49 return d.Err("expected tokens")
50 }
51 - for nesting := d.Nesting(); d.NextBlock(nesting); {
52 - if !d.NextArg() {
53 - return d.ArgErr()
54 - }
51 + if d.NextArg() {
52 s.Root = d.Val()
56 - if d.NextArg() {
57 - return d.ArgErr()
53 + }
54 + if d.NextArg() {
55 + return d.ArgErr()
56 + }
57 + for nesting := d.Nesting(); d.NextBlock(nesting); {
58 + switch d.Val() {
59 + case "root":
60 + if !d.NextArg() {
61 + return d.ArgErr()
62 + }
63 + if s.Root != "" {
64 + return d.Err("root already set")
65 + }
66 + s.Root = d.Val()
67 + if d.NextArg() {
68 + return d.ArgErr()
69 + }
70 + default:
71 + return d.Errf("unrecognized parameter '%s'", d.Val())
72 }
73 }
74 + if s.Root == "" {
75 + return d.Err("missing root path (to use default, omit storage config entirely)")
76 + }
77 return nil
78 }
79