@ -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,26 +221,30 @@ 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 ( )
}
if ! d . Next ( ) { // get issuer module 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 )
}
modID := "tls.issuance." + d . Val ( )
unm , err := caddyfile . UnmarshalModule ( d , modID )
if err != nil {
return nil , err
}
iss , ok := unm . ( certmagic . Issuer )
if ! ok {
return nil , d . Errf ( "module %s (%T) is not a certmagic.Issuer" , modID , unm )
for d . Next ( ) { // consume option name
if ! d . Next ( ) { // get issuer module name
return nil , d . ArgErr ( )
}
modID := "tls.issuance." + d . Val ( )
unm , err := caddyfile . UnmarshalModule ( d , modID )
if err != nil {
return nil , err
}
iss , ok := unm . ( certmagic . Issuer )
if ! ok {
return nil , d . Errf ( "module %s (%T) is not a certmagic.Issuer" , modID , unm )
}
issuers = append ( issuers , iss )
}
return iss , nil
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 )
}