diff options
| author | Mark Sargent <99003+sarge@users.noreply.github.com> | 2020-03-05 05:58:49 +1300 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-04 09:58:49 -0700 | 
| commit | 26fb8b3efd671a02a92ee55e93f547606285cde4 (patch) | |
| tree | e11624c59e70f17bf69ea70a6b800cd3daf12b99 /caddyconfig/httpcaddyfile/builtins.go | |
| parent | e6c6210772ded5e07a9c730d22902c99d30631e2 (diff) | |
httpcaddyfile: remove certificate tags from global state (#3111)
* remove the certificate tag tracking from global state
* refactored helper state, added log counter
* moved state initialisation close to where it is used.
* added helper state comment
Diffstat (limited to 'caddyconfig/httpcaddyfile/builtins.go')
| -rw-r--r-- | caddyconfig/httpcaddyfile/builtins.go | 28 | 
1 files changed, 19 insertions, 9 deletions
diff --git a/caddyconfig/httpcaddyfile/builtins.go b/caddyconfig/httpcaddyfile/builtins.go index ef15ad9..c2da6a9 100644 --- a/caddyconfig/httpcaddyfile/builtins.go +++ b/caddyconfig/httpcaddyfile/builtins.go @@ -152,6 +152,18 @@ func parseTLS(h Helper) ([]ConfigValue, error) {  			// policy that is looking for any tag but the last one to be  			// loaded won't find it, and TLS handshakes will fail (see end)  			// of issue #3004) + +			// tlsCertTags maps certificate filenames to their tag. +			// This is used to remember which tag is used for each +			// certificate files, since we need to avoid loading +			// the same certificate files more than once, overwriting +			// previous tags +			tlsCertTags, ok := h.State["tlsCertTags"].(map[string]string) +			if !ok { +				tlsCertTags = make(map[string]string) +				h.State["tlsCertTags"] = tlsCertTags +			} +  			tag, ok := tlsCertTags[certFilename]  			if !ok {  				// haven't seen this cert file yet, let's give it a tag @@ -521,10 +533,17 @@ func parseLog(h Helper) ([]ConfigValue, error) {  		var val namedCustomLog  		if !reflect.DeepEqual(cl, new(caddy.CustomLog)) { + +			logCounter, ok := h.State["logCounter"].(int) +			if !ok { +				logCounter = 0 +			} +  			cl.Include = []string{"http.log.access"}  			val.name = fmt.Sprintf("log%d", logCounter)  			val.log = cl  			logCounter++ +			h.State["logCounter"] = logCounter  		}  		configValues = append(configValues, ConfigValue{  			Class: "custom_log", @@ -533,12 +552,3 @@ func parseLog(h Helper) ([]ConfigValue, error) {  	}  	return configValues, nil  } - -// tlsCertTags maps certificate filenames to their tag. -// This is used to remember which tag is used for each -// certificate files, since we need to avoid loading -// the same certificate files more than once, overwriting -// previous tags -var tlsCertTags = make(map[string]string) - -var logCounter int  | 
