@ -30,7 +30,6 @@ func init() { 
			
		
	
		
			
				
						RegisterGlobalOption ( "https_port" ,  parseOptHTTPSPort )  
			
		
	
		
			
				
						RegisterGlobalOption ( "default_sni" ,  parseOptSingleString )  
			
		
	
		
			
				
						RegisterGlobalOption ( "order" ,  parseOptOrder )  
			
		
	
		
			
				
						RegisterGlobalOption ( "experimental_http3" ,  parseOptTrue )  
			
		
	
		
			
				
						RegisterGlobalOption ( "storage" ,  parseOptStorage )  
			
		
	
		
			
				
						RegisterGlobalOption ( "acme_ca" ,  parseOptSingleString )  
			
		
	
		
			
				
						RegisterGlobalOption ( "acme_ca_root" ,  parseOptSingleString )  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -46,11 +45,9 @@ func init() { 
			
		
	
		
			
				
						RegisterGlobalOption ( "servers" ,  parseServerOptions )  
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					func  parseOptTrue ( d  * caddyfile . Dispenser )  ( interface { } ,  error )  {  
			
		
	
		
			
				
						return  true ,  nil  
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					func  parseOptTrue ( d  * caddyfile . Dispenser ,  _  interface { } )  ( interface { } ,  error )  {  return  true ,  nil  }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					func  parseOptHTTPPort ( d  * caddyfile . Dispenser )  ( interface { } ,  error )  {  
			
		
	
		
			
				
					func  parseOptHTTPPort ( d  * caddyfile . Dispenser ,  _  interface { } )  ( interface { } ,  error )  {  
			
		
	
		
			
				
						var  httpPort  int  
			
		
	
		
			
				
						for  d . Next ( )  {  
			
		
	
		
			
				
							var  httpPortStr  string  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -66,7 +63,7 @@ func parseOptHTTPPort(d *caddyfile.Dispenser) (interface{}, error) { 
			
		
	
		
			
				
						return  httpPort ,  nil  
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					func  parseOptHTTPSPort ( d  * caddyfile . Dispenser )  ( interface { } ,  error )  {  
			
		
	
		
			
				
					func  parseOptHTTPSPort ( d  * caddyfile . Dispenser ,  _  interface { } )  ( interface { } ,  error )  {  
			
		
	
		
			
				
						var  httpsPort  int  
			
		
	
		
			
				
						for  d . Next ( )  {  
			
		
	
		
			
				
							var  httpsPortStr  string  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -82,7 +79,7 @@ func parseOptHTTPSPort(d *caddyfile.Dispenser) (interface{}, error) { 
			
		
	
		
			
				
						return  httpsPort ,  nil  
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					func  parseOptOrder ( d  * caddyfile . Dispenser )  ( interface { } ,  error )  {  
			
		
	
		
			
				
					func  parseOptOrder ( d  * caddyfile . Dispenser ,  _  interface { } )  ( interface { } ,  error )  {  
			
		
	
		
			
				
						newOrder  :=  directiveOrder  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
						for  d . Next ( )  {  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -158,7 +155,7 @@ func parseOptOrder(d *caddyfile.Dispenser) (interface{}, error) { 
			
		
	
		
			
				
						return  newOrder ,  nil  
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					func  parseOptStorage ( d  * caddyfile . Dispenser )  ( interface { } ,  error )  {  
			
		
	
		
			
				
					func  parseOptStorage ( d  * caddyfile . Dispenser ,  _  interface { } )  ( interface { } ,  error )  {  
			
		
	
		
			
				
						if  ! d . Next ( )  {  // consume option name
  
			
		
	
		
			
				
							return  nil ,  d . ArgErr ( )  
			
		
	
		
			
				
						}  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -177,7 +174,7 @@ func parseOptStorage(d *caddyfile.Dispenser) (interface{}, error) { 
			
		
	
		
			
				
						return  storage ,  nil  
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					func  parseOptACMEDNS ( d  * caddyfile . Dispenser )  ( interface { } ,  error )  {  
			
		
	
		
			
				
					func  parseOptACMEDNS ( d  * caddyfile . Dispenser ,  _  interface { } )  ( interface { } ,  error )  {  
			
		
	
		
			
				
						if  ! d . Next ( )  {  // consume option name
  
			
		
	
		
			
				
							return  nil ,  d . ArgErr ( )  
			
		
	
		
			
				
						}  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -196,7 +193,7 @@ func parseOptACMEDNS(d *caddyfile.Dispenser) (interface{}, error) { 
			
		
	
		
			
				
						return  prov ,  nil  
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					func  parseOptACMEEAB ( d  * caddyfile . Dispenser )  ( interface { } ,  error )  {  
			
		
	
		
			
				
					func  parseOptACMEEAB ( d  * caddyfile . Dispenser ,  _  interface { } )  ( interface { } ,  error )  {  
			
		
	
		
			
				
						eab  :=  new ( acme . EAB )  
			
		
	
		
			
				
						for  d . Next ( )  {  
			
		
	
		
			
				
							if  d . NextArg ( )  {  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -224,10 +221,12 @@ func parseOptACMEEAB(d *caddyfile.Dispenser) (interface{}, error) { 
			
		
	
		
			
				
						return  eab ,  nil  
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					func  parseOptCertIssuer ( d  * caddyfile . Dispenser )  ( interface { } ,  error )  {  
			
		
	
		
			
				
						if  ! d . Next ( )  {  // consume option name
  
			
		
	
		
			
				
							return  nil ,  d . ArgErr ( )  
			
		
	
		
			
				
					func  parseOptCertIssuer ( d  * caddyfile . Dispenser ,  existing  interface { } )  ( interface { } ,  error )  {  
			
		
	
		
			
				
						var  issuers  [ ] certmagic . Issuer  
			
		
	
		
			
				
						if  existing  !=  nil  {  
			
		
	
		
			
				
							issuers  =  existing . ( [ ] certmagic . Issuer )  
			
		
	
		
			
				
						}  
			
		
	
		
			
				
						for  d . Next ( )  {  // consume option name
  
			
		
	
		
			
				
							if  ! d . Next ( )  {  // get issuer module name
  
			
		
	
		
			
				
								return  nil ,  d . ArgErr ( )  
			
		
	
		
			
				
							}  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -240,10 +239,12 @@ func parseOptCertIssuer(d *caddyfile.Dispenser) (interface{}, error) { 
			
		
	
		
			
				
							if  ! ok  {  
			
		
	
		
			
				
								return  nil ,  d . Errf ( "module %s (%T) is not a certmagic.Issuer" ,  modID ,  unm )  
			
		
	
		
			
				
							}  
			
		
	
		
			
				
						return  iss ,  nil  
			
		
	
		
			
				
							issuers  =  append ( issuers ,  iss )  
			
		
	
		
			
				
						}  
			
		
	
		
			
				
						return  issuers ,  nil  
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					func  parseOptSingleString ( d  * caddyfile . Dispenser )  ( interface { } ,  error )  {  
			
		
	
		
			
				
					func  parseOptSingleString ( d  * caddyfile . Dispenser ,  _  interface { } )  ( interface { } ,  error )  {  
			
		
	
		
			
				
						d . Next ( )  // consume parameter name
  
			
		
	
		
			
				
						if  ! d . Next ( )  {  
			
		
	
		
			
				
							return  "" ,  d . ArgErr ( )  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -255,7 +256,7 @@ func parseOptSingleString(d *caddyfile.Dispenser) (interface{}, error) { 
			
		
	
		
			
				
						return  val ,  nil  
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					func  parseOptAdmin ( d  * caddyfile . Dispenser )  ( interface { } ,  error )  {  
			
		
	
		
			
				
					func  parseOptAdmin ( d  * caddyfile . Dispenser ,  _  interface { } )  ( interface { } ,  error )  {  
			
		
	
		
			
				
						adminCfg  :=  new ( caddy . AdminConfig )  
			
		
	
		
			
				
						for  d . Next ( )  {  
			
		
	
		
			
				
							if  d . NextArg ( )  {  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -291,7 +292,7 @@ func parseOptAdmin(d *caddyfile.Dispenser) (interface{}, error) { 
			
		
	
		
			
				
						return  adminCfg ,  nil  
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					func  parseOptOnDemand ( d  * caddyfile . Dispenser )  ( interface { } ,  error )  {  
			
		
	
		
			
				
					func  parseOptOnDemand ( d  * caddyfile . Dispenser ,  _  interface { } )  ( interface { } ,  error )  {  
			
		
	
		
			
				
						var  ond  * caddytls . OnDemandConfig  
			
		
	
		
			
				
						for  d . Next ( )  {  
			
		
	
		
			
				
							if  d . NextArg ( )  {  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -351,7 +352,7 @@ func parseOptOnDemand(d *caddyfile.Dispenser) (interface{}, error) { 
			
		
	
		
			
				
						return  ond ,  nil  
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					func  parseOptAutoHTTPS ( d  * caddyfile . Dispenser )  ( interface { } ,  error )  {  
			
		
	
		
			
				
					func  parseOptAutoHTTPS ( d  * caddyfile . Dispenser ,  _  interface { } )  ( interface { } ,  error )  {  
			
		
	
		
			
				
						d . Next ( )  // consume parameter name
  
			
		
	
		
			
				
						if  ! d . Next ( )  {  
			
		
	
		
			
				
							return  "" ,  d . ArgErr ( )  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -366,6 +367,6 @@ func parseOptAutoHTTPS(d *caddyfile.Dispenser) (interface{}, error) { 
			
		
	
		
			
				
						return  val ,  nil  
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					func  parseServerOptions ( d  * caddyfile . Dispenser )  ( interface { } ,  error )  {  
			
		
	
		
			
				
					func  parseServerOptions ( d  * caddyfile . Dispenser ,  _  interface { } )  ( interface { } ,  error )  {  
			
		
	
		
			
				
						return  unmarshalCaddyfileServerOptions ( d )  
			
		
	
		
			
				
					}