From ba88be0fe90f243d38a58dd0a4a41ffea7aa900e Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Thu, 29 Jan 2015 23:09:14 -0700 Subject: [PATCH] Allow nil middleware to be returned In case a middleware actually just wants some code to execute at startup... will expand on that idea later. --- config/dispenser.go | 4 +++- config/parser.go | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/config/dispenser.go b/config/dispenser.go index 6e6c29d79..a043b808d 100644 --- a/config/dispenser.go +++ b/config/dispenser.go @@ -8,12 +8,14 @@ import ( // dispenser is a type that gets exposed to middleware // generators so that they can parse tokens to configure // their instance. +// TODO: Rename this; it does more than dispense tokens. +// It also provides access to the server to touch its +// configuration. type dispenser struct { parser *parser cursor int nesting int tokens []token - //err error } // newDispenser returns a new dispenser. diff --git a/config/parser.go b/config/parser.go index b20d546f4..8201e3170 100644 --- a/config/parser.go +++ b/config/parser.go @@ -113,7 +113,9 @@ func (p *parser) unwrap() error { if err != nil { return err } - p.cfg.Middleware = append(p.cfg.Middleware, mid) + if mid != nil { + p.cfg.Middleware = append(p.cfg.Middleware, mid) + } } else { return errors.New("No middleware bound to directive '" + directive + "'") }