MCPcopy Create free account
hub / github.com/foxcpp/maddy / Configure

Method Configure

internal/storage/imapsql/imapsql.go:106–291  ·  view source on GitHub ↗
(inlineArgs []string, cfg *config.Map)

Source from the content-addressed store, hash-verified

104}
105
106func (store *Storage) Configure(inlineArgs []string, cfg *config.Map) error {
107 if len(inlineArgs) != 0 {
108 if len(inlineArgs) == 1 {
109 return errors.New("imapsql: expected at least 2 arguments")
110 }
111
112 store.driver = inlineArgs[0]
113 store.dsn = inlineArgs[1:]
114 }
115
116 var (
117 driver string
118 dsn []string
119 appendlimitVal int64 = -1
120 compression []string
121 authNormalize string
122 deliveryNormalize string
123
124 blobStore module.BlobStore
125 )
126
127 opts := &imapsql.Opts{}
128 cfg.String("driver", false, false, store.driver, &driver)
129 cfg.StringList("dsn", false, false, store.dsn, &dsn)
130 cfg.Callback("fsstore", func(m *config.Map, node config.Node) error {
131 store.log.Msg("'fsstore' directive is deprecated, use 'msg_store fs' instead")
132 return modconfig.ModuleFromNode("storage.blob", append([]string{"fs"}, node.Args...),
133 node, m.Globals, &blobStore)
134 })
135 cfg.Custom("msg_store", false, false, func() (interface{}, error) {
136 var store module.BlobStore
137 err := modconfig.ModuleFromNode("storage.blob", []string{"fs", "messages"},
138 config.Node{}, nil, &store)
139 return store, err
140 }, func(m *config.Map, node config.Node) (interface{}, error) {
141 var store module.BlobStore
142 err := modconfig.ModuleFromNode("storage.blob", node.Args,
143 node, m.Globals, &store)
144 return store, err
145 }, &blobStore)
146 cfg.StringList("compression", false, false, []string{"off"}, &compression)
147 cfg.DataSize("appendlimit", false, false, 32*1024*1024, &appendlimitVal)
148 cfg.Bool("debug", true, false, &store.log.Debug)
149 cfg.Int("sqlite3_cache_size", false, false, 0, &opts.CacheSize)
150 cfg.Int("sqlite3_busy_timeout", false, false, 5000, &opts.BusyTimeout)
151 cfg.Bool("disable_recent", false, true, &opts.DisableRecent)
152 cfg.String("junk_mailbox", false, false, "Junk", &store.junkMbox)
153 cfg.Custom("imap_filter", false, false, func() (interface{}, error) {
154 return nil, nil
155 }, func(m *config.Map, node config.Node) (interface{}, error) {
156 var filter module.IMAPFilter
157 err := modconfig.GroupFromNode("imap_filters", node.Args, node, m.Globals, &filter)
158 return filter, err
159 }, &store.filters)
160 cfg.Custom("auth_map", false, false, func() (interface{}, error) {
161 return nil, nil
162 }, modconfig.TableDirective, &store.authMap)
163 cfg.String("auth_normalize", false, false, "auto", &authNormalize)

Callers

nothing calls this directly

Implementers 1

Storageinternal/storage/imapsql/imapsql.go

Calls 13

userDoesNotExistFunction · 0.85
StringListMethod · 0.80
CallbackMethod · 0.80
MsgMethod · 0.80
CustomMethod · 0.80
DataSizeMethod · 0.80
BoolMethod · 0.80
IntMethod · 0.80
ProcessMethod · 0.80
PrintlnMethod · 0.80
DebuglnMethod · 0.80
LookupMethod · 0.65

Tested by

no test coverage detected