// GetConfig gets the SiteConfig that corresponds to c. // If none exist (should only happen in tests), then a // new, empty one will be created. func GetConfig(c *caddy.Controller) *SiteConfig { ctx := c.Context().(*httpContext) if cfg, ok := ctx.keysToSiteConfigs[c.Key]; ok { return cfg } // we should only get here during tests because directive // actions typically skip the server blocks where we make // the configs ctx.saveConfig(c.Key, &SiteConfig{Root: Root, TLS: new(caddytls.Config)}) return GetConfig(c) }