mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-10-31 10:37:24 -04:00 
			
		
		
		
	httpcaddyfile: Add grace_period global option (#4152)
				
					
				
			See https://caddyserver.com/docs/json/apps/http/#grace_period
This commit is contained in:
		
							parent
							
								
									d4b2f1bcee
								
							
						
					
					
						commit
						3cf443f0fe
					
				| @ -220,9 +220,10 @@ func (st ServerType) Setup(inputServerBlocks []caddyfile.ServerBlock, | ||||
| 
 | ||||
| 	// now that each server is configured, make the HTTP app | ||||
| 	httpApp := caddyhttp.App{ | ||||
| 		HTTPPort:  tryInt(options["http_port"], &warnings), | ||||
| 		HTTPSPort: tryInt(options["https_port"], &warnings), | ||||
| 		Servers:   servers, | ||||
| 		HTTPPort:    tryInt(options["http_port"], &warnings), | ||||
| 		HTTPSPort:   tryInt(options["https_port"], &warnings), | ||||
| 		GracePeriod: tryDuration(options["grace_period"], &warnings), | ||||
| 		Servers:     servers, | ||||
| 	} | ||||
| 
 | ||||
| 	// then make the TLS app | ||||
| @ -1246,6 +1247,14 @@ func tryString(val interface{}, warnings *[]caddyconfig.Warning) string { | ||||
| 	return stringVal | ||||
| } | ||||
| 
 | ||||
| func tryDuration(val interface{}, warnings *[]caddyconfig.Warning) caddy.Duration { | ||||
| 	durationVal, ok := val.(caddy.Duration) | ||||
| 	if val != nil && !ok && warnings != nil { | ||||
| 		*warnings = append(*warnings, caddyconfig.Warning{Message: "not a duration type"}) | ||||
| 	} | ||||
| 	return durationVal | ||||
| } | ||||
| 
 | ||||
| // sliceContains returns true if needle is in haystack. | ||||
| func sliceContains(haystack []string, needle string) bool { | ||||
| 	for _, s := range haystack { | ||||
|  | ||||
| @ -29,10 +29,11 @@ func init() { | ||||
| 	RegisterGlobalOption("debug", parseOptTrue) | ||||
| 	RegisterGlobalOption("http_port", parseOptHTTPPort) | ||||
| 	RegisterGlobalOption("https_port", parseOptHTTPSPort) | ||||
| 	RegisterGlobalOption("grace_period", parseOptDuration) | ||||
| 	RegisterGlobalOption("default_sni", parseOptSingleString) | ||||
| 	RegisterGlobalOption("order", parseOptOrder) | ||||
| 	RegisterGlobalOption("storage", parseOptStorage) | ||||
| 	RegisterGlobalOption("storage_clean_interval", parseOptStorageCleanInterval) | ||||
| 	RegisterGlobalOption("storage_clean_interval", parseOptDuration) | ||||
| 	RegisterGlobalOption("acme_ca", parseOptSingleString) | ||||
| 	RegisterGlobalOption("acme_ca_root", parseOptSingleString) | ||||
| 	RegisterGlobalOption("acme_dns", parseOptACMEDNS) | ||||
| @ -178,7 +179,7 @@ func parseOptStorage(d *caddyfile.Dispenser, _ interface{}) (interface{}, error) | ||||
| 	return storage, nil | ||||
| } | ||||
| 
 | ||||
| func parseOptStorageCleanInterval(d *caddyfile.Dispenser, _ interface{}) (interface{}, error) { | ||||
| func parseOptDuration(d *caddyfile.Dispenser, _ interface{}) (interface{}, error) { | ||||
| 	if !d.Next() { // consume option name | ||||
| 		return nil, d.ArgErr() | ||||
| 	} | ||||
|  | ||||
| @ -2,6 +2,7 @@ | ||||
| 	debug | ||||
| 	http_port 8080 | ||||
| 	https_port 8443 | ||||
| 	grace_period 5s | ||||
| 	default_sni localhost | ||||
| 	order root first | ||||
| 	storage file_system { | ||||
| @ -42,6 +43,7 @@ | ||||
| 		"http": { | ||||
| 			"http_port": 8080, | ||||
| 			"https_port": 8443, | ||||
| 			"grace_period": 5000000000, | ||||
| 			"servers": { | ||||
| 				"srv0": { | ||||
| 					"listen": [ | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user