MCPcopy Index your code
hub / github.com/foxcpp/maddy / readTLSBlock

Function readTLSBlock

framework/config/tls/server.go:71–124  ·  view source on GitHub ↗
(globals map[string]interface{}, blockNode config.Node)

Source from the content-addressed store, hash-verified

69}
70
71func readTLSBlock(globals map[string]interface{}, blockNode config.Node) (*TLSConfig, error) {
72 baseCfg := tls.Config{
73 // Workaround for issue https://github.com/foxcpp/maddy/issues/730
74 SessionTicketsDisabled: true,
75 }
76
77 var loader module.TLSLoader
78 if len(blockNode.Args) > 0 {
79 if blockNode.Args[0] == "off" {
80 return nil, nil
81 }
82
83 err := modconfig.ModuleFromNode("tls.loader", blockNode.Args, config.Node{}, globals, &loader)
84 if err != nil {
85 return nil, err
86 }
87 }
88
89 childM := config.NewMap(globals, blockNode)
90 var tlsVersions [2]uint16
91
92 childM.Custom("loader", false, false, func() (interface{}, error) {
93 return loader, nil
94 }, func(_ *config.Map, node config.Node) (interface{}, error) {
95 var l module.TLSLoader
96 err := modconfig.ModuleFromNode("tls.loader", node.Args, node, globals, &l)
97 return l, err
98 }, &loader)
99
100 childM.Custom("protocols", false, false, func() (interface{}, error) {
101 return [2]uint16{tls.VersionTLS10, 0}, nil
102 }, TLSVersionsDirective, &tlsVersions)
103
104 childM.Custom("ciphers", false, false, func() (interface{}, error) {
105 return nil, nil
106 }, TLSCiphersDirective, &baseCfg.CipherSuites)
107
108 childM.Custom("curves", false, false, func() (interface{}, error) {
109 return nil, nil
110 }, TLSCurvesDirective, &baseCfg.CurvePreferences)
111
112 if _, err := childM.Process(); err != nil {
113 return nil, err
114 }
115
116 baseCfg.MinVersion = tlsVersions[0]
117 baseCfg.MaxVersion = tlsVersions[1]
118 log.Debugf("tls: min version: %x, max version: %x", tlsVersions[0], tlsVersions[1])
119
120 return &TLSConfig{
121 loader: loader,
122 baseCfg: &baseCfg,
123 }, nil
124}

Callers 1

TLSDirectiveFunction · 0.85

Calls 4

CustomMethod · 0.95
ProcessMethod · 0.95
NewMapFunction · 0.92
DebugfFunction · 0.92

Tested by

no test coverage detected