SYMBOL INDEX (2069 symbols across 310 files) FILE: cmd/maddy-pam-helper/main.c function run (line 12) | int run(void) { function main (line 48) | int main() { FILE: cmd/maddy-pam-helper/main.go function main (line 35) | func main() { FILE: cmd/maddy-pam-helper/pam.c function conv_func (line 26) | static int conv_func(int num_msg, const struct pam_message **msg, struct... function run_pam_auth (line 47) | struct error_obj run_pam_auth(const char *username, char *password) { FILE: cmd/maddy-pam-helper/pam.h type error_obj (line 21) | struct error_obj { type error_obj (line 27) | struct error_obj FILE: cmd/maddy-shadow-helper/main.go function main (line 30) | func main() { FILE: cmd/maddy/main.go function main (line 27) | func main() { FILE: config.go type logOut (line 38) | type logOut struct function logOutput (line 43) | func logOutput(_ *config.Map, node config.Node) (interface{}, error) { function LogOutputOption (line 54) | func LogOutputOption(args []string) (log.Output, error) { function defaultLogOutput (line 100) | func defaultLogOutput() (interface{}, error) { function reinitLogging (line 104) | func reinitLogging() { FILE: docs/man/prepare_md.py function prepare (line 18) | def prepare(r, w): FILE: framework/address/norm.go function ForLookup (line 38) | func ForLookup(addr string) (string, error) { function CleanDomain (line 70) | func CleanDomain(addr string) (string, error) { function Equal (line 105) | func Equal(addr1, addr2 string) bool { function IsASCII (line 117) | func IsASCII(s string) bool { function FQDNDomain (line 126) | func FQDNDomain(addr string) string { function PRECISFold (line 135) | func PRECISFold(addr string) (string, error) { function PRECIS (line 141) | func PRECIS(addr string) (string, error) { function precisEmail (line 145) | func precisEmail(addr string, profile *precis.Profile) (string, error) { FILE: framework/address/norm_test.go function addrFuncTest (line 25) | func addrFuncTest(t *testing.T, f func(string) (string, error)) func(in,... function TestForLookup (line 41) | func TestForLookup(t *testing.T) { function TestCleanDomain (line 52) | func TestCleanDomain(t *testing.T) { function TestEqual (line 64) | func TestEqual(t *testing.T) { function TestIsASCII (line 81) | func TestIsASCII(t *testing.T) { FILE: framework/address/rfc6531.go function ToASCII (line 32) | func ToASCII(addr string) (string, error) { function ToUnicode (line 57) | func ToUnicode(addr string) (string, error) { function SelectIDNA (line 80) | func SelectIDNA(ulabel bool, addr string) (string, error) { FILE: framework/address/rfc6531_test.go function TestToASCII (line 26) | func TestToASCII(t *testing.T) { function TestToUnicode (line 35) | func TestToUnicode(t *testing.T) { FILE: framework/address/split.go function Split (line 36) | func Split(addr string) (mailbox, domain string, err error) { function UnquoteMbox (line 58) | func UnquoteMbox(mbox string) (string, error) { function QuoteMbox (line 113) | func QuoteMbox(mbox string) string { FILE: framework/address/split_test.go function TestSplit (line 25) | func TestSplit(t *testing.T) { function TestUnquoteMbox (line 63) | func TestUnquoteMbox(t *testing.T) { function TestQuoteMbox (line 94) | func TestQuoteMbox(t *testing.T) { FILE: framework/address/validation.go function Valid (line 34) | func Valid(addr string) bool { function ValidMailboxName (line 68) | func ValidMailboxName(mbox string) bool { function ValidDomain (line 113) | func ValidDomain(domain string) bool { FILE: framework/address/validation_test.go function TestValidMailboxName (line 10) | func TestValidMailboxName(t *testing.T) { function TestValidDomain (line 16) | func TestValidDomain(t *testing.T) { FILE: framework/buffer/buffer.go type Buffer (line 40) | type Buffer interface FILE: framework/buffer/bytesreader.go type BytesReader (line 31) | type BytesReader struct method Bytes (line 38) | func (br BytesReader) Bytes() []byte { method Copy (line 44) | func (br BytesReader) Copy() BytesReader { method Close (line 50) | func (br BytesReader) Close() error { function NewBytesReader (line 54) | func NewBytesReader(b []byte) BytesReader { FILE: framework/buffer/file.go type FileBuffer (line 31) | type FileBuffer struct method Open (line 40) | func (fb FileBuffer) Open() (io.ReadCloser, error) { method Len (line 44) | func (fb FileBuffer) Len() int { method Remove (line 59) | func (fb FileBuffer) Remove() error { function BufferInFile (line 65) | func BufferInFile(r io.Reader, dir string) (Buffer, error) { FILE: framework/buffer/memory.go type MemoryBuffer (line 26) | type MemoryBuffer struct method Open (line 30) | func (mb MemoryBuffer) Open() (io.ReadCloser, error) { method Len (line 34) | func (mb MemoryBuffer) Len() int { method Remove (line 38) | func (mb MemoryBuffer) Remove() error { function BufferInMemory (line 44) | func BufferInMemory(r io.Reader) (Buffer, error) { FILE: framework/cfgparser/env.go function expandEnvironment (line 27) | func expandEnvironment(nodes []Node) []Node { function removeUnexpandedEnvvars (line 51) | func removeUnexpandedEnvvars(s string) string { function buildEnvReplacer (line 56) | func buildEnvReplacer() *strings.Replacer { FILE: framework/cfgparser/imports.go method expandImports (line 28) | func (ctx *parseContext) expandImports(node Node, expansionDepth int) (N... method resolveImport (line 77) | func (ctx *parseContext) resolveImport(node Node, name string, expansion... method expandMacros (line 114) | func (ctx *parseContext) expandMacros(node *Node) error { method expandSingleValueMacro (line 158) | func (ctx *parseContext) expandSingleValueMacro(arg string) (string, err... FILE: framework/cfgparser/parse.go type Node (line 38) | type Node struct type parseContext (line 65) | type parseContext struct method readNode (line 106) | func (ctx *parseContext) readNode() (Node, error) { method isSnippet (line 184) | func (ctx *parseContext) isSnippet(name string) (bool, string) { method parseAsMacro (line 191) | func (ctx *parseContext) parseAsMacro(node *Node) (macroName string, a... method readNodes (line 219) | func (ctx *parseContext) readNodes() ([]Node, error) { function validateNodeName (line 74) | func validateNodeName(s string) error { function NodeErr (line 177) | func NodeErr(node Node, f string, args ...interface{}) error { function readTree (line 351) | func readTree(r io.Reader, location string, expansionDepth int) (nodes [... function Read (line 387) | func Read(r io.Reader, location string) (nodes []Node, err error) { FILE: framework/cfgparser/parse_test.go function printTree (line 576) | func printTree(t *testing.T, root Node, indent int) { function TestRead (line 583) | func TestRead(t *testing.T) { FILE: framework/config/config.go function NodeErr (line 31) | func NodeErr(node Node, f string, args ...interface{}) error { FILE: framework/config/endpoint.go type Endpoint (line 33) | type Endpoint struct method String (line 38) | func (e Endpoint) String() string { method Network (line 70) | func (e Endpoint) Network() string { method Address (line 77) | func (e Endpoint) Address() string { method IsTLS (line 84) | func (e Endpoint) IsTLS() bool { function ParseEndpoint (line 90) | func ParseEndpoint(str string) (Endpoint, error) { FILE: framework/config/endpoint_test.go function TestStandardizeAddress (line 26) | func TestStandardizeAddress(t *testing.T) { FILE: framework/config/lexer/dispenser.go type Dispenser (line 45) | type Dispenser struct method Next (line 74) | func (d *Dispenser) Next() bool { method NextArg (line 86) | func (d *Dispenser) NextArg() bool { method NextLine (line 107) | func (d *Dispenser) NextLine() bool { method NextBlock (line 130) | func (d *Dispenser) NextBlock() bool { method Val (line 157) | func (d *Dispenser) Val() string { method Line (line 166) | func (d *Dispenser) Line() int { method File (line 175) | func (d *Dispenser) File() string { method Args (line 191) | func (d *Dispenser) Args(targets ...*string) bool { method RemainingArgs (line 207) | func (d *Dispenser) RemainingArgs() []string { method ArgErr (line 225) | func (d *Dispenser) ArgErr() error { method SyntaxErr (line 234) | func (d *Dispenser) SyntaxErr(expected string) error { method EOFErr (line 241) | func (d *Dispenser) EOFErr() error { method Err (line 246) | func (d *Dispenser) Err(msg string) error { method Errf (line 252) | func (d *Dispenser) Errf(format string, args ...interface{}) error { method numLineBreaks (line 259) | func (d *Dispenser) numLineBreaks(tknIdx int) int { function NewDispenser (line 53) | func NewDispenser(filename string, input io.Reader) Dispenser { function NewDispenserTokens (line 63) | func NewDispenserTokens(filename string, tokens []Token) Dispenser { FILE: framework/config/lexer/dispenser_test.go function TestDispenser_Val_Next (line 41) | func TestDispenser_Val_Next(t *testing.T) { function TestDispenser_NextArg (line 80) | func TestDispenser_NextArg(t *testing.T) { function TestDispenser_NextLine (line 127) | func TestDispenser_NextLine(t *testing.T) { function TestDispenser_NextBlock (line 157) | func TestDispenser_NextBlock(t *testing.T) { function TestDispenser_Args (line 188) | func TestDispenser_Args(t *testing.T) { function TestDispenser_RemainingArgs (line 256) | func TestDispenser_RemainingArgs(t *testing.T) { function TestDispenser_ArgErr_Err (line 294) | func TestDispenser_ArgErr_Err(t *testing.T) { FILE: framework/config/lexer/lexer.go type lexer (line 46) | type lexer struct method load (line 64) | func (l *lexer) load(input io.Reader) error { method err (line 83) | func (l *lexer) err() error { method next (line 100) | func (l *lexer) next() bool { type Token (line 55) | type Token struct FILE: framework/config/lexer/lexer_test.go type lexerTestCase (line 41) | type lexerTestCase struct function TestLexer (line 46) | func TestLexer(t *testing.T) { function tokenize (line 178) | func tokenize(input string) (tokens []Token) { function lexerCompare (line 189) | func lexerCompare(t *testing.T, n int, expected, actual []Token) { FILE: framework/config/lexer/parse.go function allTokens (line 28) | func allTokens(input io.Reader) ([]Token, error) { FILE: framework/config/map.go type matcher (line 31) | type matcher struct method assign (line 42) | func (m *matcher) assign(val interface{}) { type Map (line 54) | type Map struct method AllowUnknown (line 74) | func (m *Map) AllowUnknown() { method EnumList (line 84) | func (m *Map) EnumList(name string, inheritGlobal, required bool, allo... method Enum (line 117) | func (m *Map) Enum(name string, inheritGlobal, required bool, allowed ... method Duration (line 202) | func (m *Map) Duration(name string, inheritGlobal, required bool, defa... method DataSize (line 288) | func (m *Map) DataSize(name string, inheritGlobal, required bool, defa... method Bool (line 326) | func (m *Map) Bool(name string, inheritGlobal, defaultVal bool, store ... method StringList (line 357) | func (m *Map) StringList(name string, inheritGlobal, required bool, de... method String (line 379) | func (m *Map) String(name string, inheritGlobal, required bool, defaul... method Int (line 401) | func (m *Map) Int(name string, inheritGlobal, required bool, defaultVa... method UInt (line 427) | func (m *Map) UInt(name string, inheritGlobal, required bool, defaultV... method Int32 (line 453) | func (m *Map) Int32(name string, inheritGlobal, required bool, default... method UInt32 (line 479) | func (m *Map) UInt32(name string, inheritGlobal, required bool, defaul... method Int64 (line 505) | func (m *Map) Int64(name string, inheritGlobal, required bool, default... method UInt64 (line 531) | func (m *Map) UInt64(name string, inheritGlobal, required bool, defaul... method Float (line 557) | func (m *Map) Float(name string, inheritGlobal, required bool, default... method Custom (line 595) | func (m *Map) Custom(name string, inheritGlobal, required bool, defaul... method Callback (line 631) | func (m *Map) Callback(name string, mapper func(*Map, Node) error) { method Process (line 648) | func (m *Map) Process() (unknown []Node, err error) { method ProcessWith (line 653) | func (m *Map) ProcessWith(globalCfg map[string]interface{}, block Node... function NewMap (line 68) | func NewMap(globals map[string]interface{}, block Node) *Map { function EnumMapped (line 139) | func EnumMapped[V any](m *Map, name string, inheritGlobal, required bool... function EnumListMapped (line 164) | func EnumListMapped[V any](m *Map, name string, inheritGlobal, required ... function ParseDataSize (line 227) | func ParseDataSize(s string) (int, error) { function ParseBool (line 309) | func ParseBool(s string) (bool, error) { FILE: framework/config/map_test.go function TestMapProcess (line 25) | func TestMapProcess(t *testing.T) { function TestMapProcess_MissingRequired (line 52) | func TestMapProcess_MissingRequired(t *testing.T) { function TestMapProcess_InheritGlobal (line 70) | func TestMapProcess_InheritGlobal(t *testing.T) { function TestMapProcess_InheritGlobal_MissingRequired (line 92) | func TestMapProcess_InheritGlobal_MissingRequired(t *testing.T) { function TestMapProcess_InheritGlobal_Override (line 110) | func TestMapProcess_InheritGlobal_Override(t *testing.T) { function TestMapProcess_DefaultValue (line 137) | func TestMapProcess_DefaultValue(t *testing.T) { function TestMapProcess_InheritGlobal_DefaultValue (line 161) | func TestMapProcess_InheritGlobal_DefaultValue(t *testing.T) { function TestMapProcess_Duplicate (line 196) | func TestMapProcess_Duplicate(t *testing.T) { function TestMapProcess_Unexpected (line 223) | func TestMapProcess_Unexpected(t *testing.T) { function TestMapInt (line 265) | func TestMapInt(t *testing.T) { function TestMapInt_Invalid (line 290) | func TestMapInt_Invalid(t *testing.T) { function TestMapFloat (line 311) | func TestMapFloat(t *testing.T) { function TestMapFloat_Invalid (line 336) | func TestMapFloat_Invalid(t *testing.T) { function TestMapBool (line 357) | func TestMapBool(t *testing.T) { function TestParseDataSize (line 401) | func TestParseDataSize(t *testing.T) { function TestMap_Callback (line 433) | func TestMap_Callback(t *testing.T) { FILE: framework/config/module/check_action.go type FailAction (line 55) | type FailAction struct method Apply (line 102) | func (cfa FailAction) Apply(originalRes module.CheckResult) module.Che... function FailActionDirective (line 62) | func FailActionDirective(_ *config.Map, node config.Node) (interface{}, ... function ParseActionDirective (line 74) | func ParseActionDirective(args []string) (FailAction, error) { function ParseRejectDirective (line 122) | func ParseRejectDirective(args []string) (*exterrors.SMTPError, error) { function parseEnhancedCode (line 169) | func parseEnhancedCode(s string) (exterrors.EnhancedCode, error) { FILE: framework/config/module/interfaces.go function MessageCheck (line 26) | func MessageCheck(globals map[string]interface{}, args []string, block c... function DeliveryDirective (line 45) | func DeliveryDirective(m *config.Map, node config.Node) (interface{}, er... function DeliveryTarget (line 49) | func DeliveryTarget(globals map[string]interface{}, args []string, block... function MsgModifier (line 57) | func MsgModifier(globals map[string]interface{}, args []string, block co... function IMAPFilter (line 65) | func IMAPFilter(globals map[string]interface{}, args []string, block con... function StorageDirective (line 73) | func StorageDirective(m *config.Map, node config.Node) (interface{}, err... function Table (line 86) | func Table(cfg *config.Map, name string, inheritGlobal, required bool, d... function TableDirective (line 92) | func TableDirective(m *config.Map, node config.Node) (interface{}, error) { FILE: framework/config/module/modconfig.go function createInlineModule (line 43) | func createInlineModule(c *container.C, preferredNamespace, modName stri... function configureInlineModule (line 71) | func configureInlineModule(modObj module.Module, args []string, globals ... function ModuleFromNode (line 102) | func ModuleFromNode(preferredNamespace string, args []string, inlineCfg ... function GroupFromNode (line 153) | func GroupFromNode(defaultModule string, args []string, inlineCfg config... FILE: framework/config/tls/client.go function TLSClientBlock (line 31) | func TLSClientBlock(_ *config.Map, node config.Node) (interface{}, error) { FILE: framework/config/tls/general.go function TLSVersionsDirective (line 73) | func TLSVersionsDirective(_ *config.Map, node config.Node) (interface{},... function TLSCiphersDirective (line 100) | func TLSCiphersDirective(_ *config.Map, node config.Node) (interface{}, ... function TLSCurvesDirective (line 121) | func TLSCurvesDirective(_ *config.Map, node config.Node) (interface{}, e... FILE: framework/config/tls/server.go type TLSConfig (line 30) | type TLSConfig struct method Get (line 35) | func (cfg *TLSConfig) Get() (*tls.Config, error) { function TLSDirective (line 54) | func TLSDirective(m *config.Map, node config.Node) (interface{}, error) { function readTLSBlock (line 71) | func readTLSBlock(globals map[string]interface{}, blockNode config.Node)... FILE: framework/container/container.go type GlobalConfig (line 25) | type GlobalConfig struct type C (line 53) | type C struct function New (line 60) | func New() *C { FILE: framework/container/lifetime.go type LifetimeModule (line 30) | type LifetimeModule interface type ReloadModule (line 36) | type ReloadModule interface type EarlyStopModule (line 43) | type EarlyStopModule interface type LifetimeTracker (line 48) | type LifetimeTracker struct method Add (line 57) | func (lt *LifetimeTracker) Add(mod LifetimeModule) { method StartAll (line 66) | func (lt *LifetimeTracker) StartAll() error { method ReloadAll (line 89) | func (lt *LifetimeTracker) ReloadAll() error { method EarlyStopAll (line 112) | func (lt *LifetimeTracker) EarlyStopAll() error { method StopAll (line 139) | func (lt *LifetimeTracker) StopAll() error { function NewLifetime (line 160) | func NewLifetime(log *log.Logger) *LifetimeTracker { FILE: framework/container/registry.go type registryEntry (line 33) | type registryEntry struct type Registry (line 38) | type Registry struct method Register (line 60) | func (r *Registry) Register(mod module.Module, lazyInit func() error) ... method AddAlias (line 78) | func (r *Registry) AddAlias(instanceName string, alias string) error { method ensureInitialized (line 98) | func (r *Registry) ensureInitialized(name string, entry *registryEntry... method Get (line 118) | func (r *Registry) Get(name string) (module.Module, error) { method NotInitialized (line 139) | func (r *Registry) NotInitialized() []module.Module { function NewRegistry (line 46) | func NewRegistry(log *log.Logger) *Registry { FILE: framework/dns/debugflags.go function init (line 29) | func init() { FILE: framework/dns/dnssec.go type ExtResolver (line 37) | type ExtResolver struct method exchange (line 87) | func (e ExtResolver) exchange(ctx context.Context, msg *dns.Msg) (*dns... method AuthLookupAddr (line 113) | func (e ExtResolver) AuthLookupAddr(ctx context.Context, addr string) ... method AuthLookupHost (line 142) | func (e ExtResolver) AuthLookupHost(ctx context.Context, host string) ... method AuthLookupMX (line 155) | func (e ExtResolver) AuthLookupMX(ctx context.Context, name string) (a... method AuthLookupTXT (line 182) | func (e ExtResolver) AuthLookupTXT(ctx context.Context, name string) (... method CheckCNAMEAD (line 211) | func (e ExtResolver) CheckCNAMEAD(ctx context.Context, host string) (a... method AuthLookupCNAME (line 250) | func (e ExtResolver) AuthLookupCNAME(ctx context.Context, host string)... method AuthLookupIPAddr (line 271) | func (e ExtResolver) AuthLookupIPAddr(ctx context.Context, host string... method AuthLookupTLSA (line 347) | func (e ExtResolver) AuthLookupTLSA(ctx context.Context, service, netw... type RCodeError (line 44) | type RCodeError struct method Temporary (line 49) | func (err RCodeError) Temporary() bool { method Error (line 53) | func (err RCodeError) Error() string { function IsNotFound (line 69) | func IsNotFound(err error) bool { function isLoopback (line 79) | func isLoopback(addr string) bool { function NewExtResolver (line 376) | func NewExtResolver() (*ExtResolver, error) { FILE: framework/dns/dnssec_test.go type TestSrvAction (line 17) | type TestSrvAction method String (line 26) | func (a TestSrvAction) String() string { constant TestSrvTimeout (line 20) | TestSrvTimeout TestSrvAction = iota constant TestSrvServfail (line 21) | TestSrvServfail constant TestSrvNoAddr (line 22) | TestSrvNoAddr constant TestSrvOk (line 23) | TestSrvOk type IPAddrTestServer (line 41) | type IPAddrTestServer struct method Run (line 49) | func (s *IPAddrTestServer) Run() { method Close (line 59) | func (s *IPAddrTestServer) Close() error { method Addr (line 63) | func (s *IPAddrTestServer) Addr() *net.UDPAddr { method ServeDNS (line 67) | func (s *IPAddrTestServer) ServeDNS(w dns.ResponseWriter, m *dns.Msg) { function TestExtResolver_AuthLookupIPAddr (line 126) | func TestExtResolver_AuthLookupIPAddr(t *testing.T) { FILE: framework/dns/idna.go function SelectIDNA (line 31) | func SelectIDNA(ulabel bool, domain string) (string, error) { FILE: framework/dns/norm.go function FQDN (line 29) | func FQDN(domain string) string { function ForLookup (line 41) | func ForLookup(domain string) (string, error) { function Equal (line 62) | func Equal(domain1, domain2 string) bool { FILE: framework/dns/override.go function override (line 35) | func override(server string) { // nolint: unused // used in debugflags.go FILE: framework/dns/resolver.go type Resolver (line 36) | type Resolver interface function LookupAddr (line 47) | func LookupAddr(ctx context.Context, r Resolver, ip net.IP) (string, err... function DefaultResolver (line 55) | func DefaultResolver() Resolver { FILE: framework/exterrors/dns.go function UnwrapDNSErr (line 25) | func UnwrapDNSErr(err error) (reason string, misc map[string]interface{}) { FILE: framework/exterrors/fields.go type fieldsErr (line 21) | type fieldsErr interface type unwrapper (line 25) | type unwrapper interface type fieldsWrap (line 29) | type fieldsWrap struct method Error (line 34) | func (fw fieldsWrap) Error() string { method Unwrap (line 38) | func (fw fieldsWrap) Unwrap() error { method Fields (line 42) | func (fw fieldsWrap) Fields() map[string]interface{} { function Fields (line 46) | func Fields(err error) map[string]interface{} { function WithFields (line 72) | func WithFields(err error, fields map[string]interface{}) error { FILE: framework/exterrors/smtp.go type EnhancedCode (line 27) | type EnhancedCode method FormatLog (line 29) | func (ec EnhancedCode) FormatLog() string { type SMTPError (line 37) | type SMTPError struct method Unwrap (line 86) | func (se *SMTPError) Unwrap() error { method Fields (line 90) | func (se *SMTPError) Fields() map[string]interface{} { method Temporary (line 113) | func (se *SMTPError) Temporary() bool { method Error (line 117) | func (se *SMTPError) Error() string { function SMTPCode (line 130) | func SMTPCode(err error, temporaryCode, permanentCode int) int { function SMTPEnchCode (line 140) | func SMTPEnchCode(err error, code EnhancedCode) EnhancedCode { FILE: framework/exterrors/temporary.go type TemporaryErr (line 25) | type TemporaryErr interface function IsTemporaryOrUnspec (line 33) | func IsTemporaryOrUnspec(err error) bool { function IsTemporary (line 43) | func IsTemporary(err error) bool { type temporaryErr (line 51) | type temporaryErr struct method Unwrap (line 56) | func (t temporaryErr) Unwrap() error { method Error (line 60) | func (t temporaryErr) Error() string { method Temporary (line 64) | func (t temporaryErr) Temporary() bool { function WithTemporary (line 72) | func WithTemporary(err error, temporary bool) error { FILE: framework/future/future.go type Future (line 33) | type Future struct method Set (line 48) | func (f *Future) Set(val interface{}, err error) { method Get (line 70) | func (f *Future) Get() (interface{}, error) { method GetContext (line 78) | func (f *Future) GetContext(ctx context.Context) (interface{}, error) { function New (line 42) | func New() *Future { FILE: framework/future/future_test.go function TestFuture_SetBeforeGet (line 28) | func TestFuture_SetBeforeGet(t *testing.T) { function TestFuture_Wait (line 42) | func TestFuture_Wait(t *testing.T) { function TestFuture_WaitCtx (line 67) | func TestFuture_WaitCtx(t *testing.T) { FILE: framework/hooks/hooks.go type Event (line 23) | type Event constant EventShutdown (line 27) | EventShutdown Event = iota constant EventReload (line 36) | EventReload constant EventLogRotate (line 41) | EventLogRotate function hooksToRun (line 49) | func hooksToRun(eventName Event) []func() { function RunHooks (line 67) | func RunHooks(eventName Event) { function AddHook (line 75) | func AddHook(eventName Event, f func()) { FILE: framework/log/log.go type Logger (line 44) | type Logger struct method Zap (line 56) | func (l *Logger) Zap() *zap.Logger { method IsDebug (line 61) | func (l *Logger) IsDebug() bool { method Debugf (line 65) | func (l *Logger) Debugf(format string, val ...interface{}) { method Debugln (line 72) | func (l *Logger) Debugln(val ...interface{}) { method Printf (line 79) | func (l *Logger) Printf(format string, val ...interface{}) { method Println (line 83) | func (l *Logger) Println(val ...interface{}) { method Msg (line 102) | func (l *Logger) Msg(msg string, fields ...interface{}) { method Error (line 121) | func (l *Logger) Error(msg string, err error, fields ...interface{}) { method DebugMsg (line 142) | func (l *Logger) DebugMsg(kind string, fields ...interface{}) { method formatMsg (line 171) | func (l *Logger) formatMsg(msg string, fields map[string]interface{}) ... method Write (line 200) | func (l *Logger) Write(s []byte) (int, error) { method DebugWriter (line 211) | func (l *Logger) DebugWriter() io.Writer { method output (line 217) | func (l *Logger) output() Output { method log (line 234) | func (l *Logger) log(debug bool, s string) { method Sublogger (line 245) | func (l *Logger) Sublogger(name string) *Logger { function fieldsToMap (line 151) | func fieldsToMap(fields []interface{}, out map[string]interface{}) { type Formatter (line 193) | type Formatter interface function Debugf (line 268) | func Debugf(format string, val ...interface{}) { DefaultLogger.Debugf(fo... function Debugln (line 269) | func Debugln(val ...interface{}) { DefaultLogger.Debugln(v... function Printf (line 270) | func Printf(format string, val ...interface{}) { DefaultLogger.Printf(fo... function Println (line 271) | func Println(val ...interface{}) { DefaultLogger.Println(v... FILE: framework/log/orderedjson.go type module (line 34) | type module interface function marshalOrderedJSON (line 39) | func marshalOrderedJSON(output *strings.Builder, m map[string]interface{... FILE: framework/log/output.go type Output (line 25) | type Output interface type multiOut (line 30) | type multiOut struct method Write (line 34) | func (m multiOut) Write(stamp time.Time, debug bool, msg string) { method Close (line 40) | func (m multiOut) Close() error { function MultiOutput (line 49) | func MultiOutput(outputs ...Output) Output { type funcOut (line 53) | type funcOut struct method Write (line 58) | func (f funcOut) Write(stamp time.Time, debug bool, msg string) { method Close (line 62) | func (f funcOut) Close() error { function FuncOutput (line 66) | func FuncOutput(f func(time.Time, bool, string), close func() error) Out... type NopOutput (line 70) | type NopOutput struct method Write (line 72) | func (NopOutput) Write(time.Time, bool, string) {} method Close (line 74) | func (NopOutput) Close() error { return nil } FILE: framework/log/syslog.go type syslogOut (line 31) | type syslogOut struct method Write (line 35) | func (s syslogOut) Write(stamp time.Time, debug bool, msg string) { method Close (line 48) | func (s syslogOut) Close() error { function SyslogOutput (line 59) | func SyslogOutput() (Output, error) { FILE: framework/log/syslog_stub.go function SyslogOutput (line 35) | func SyslogOutput() (Output, error) { FILE: framework/log/writer.go type wcOutput (line 29) | type wcOutput struct method Write (line 34) | func (w wcOutput) Write(stamp time.Time, debug bool, msg string) { method Close (line 49) | func (w wcOutput) Close() error { function WriteCloserOutput (line 67) | func WriteCloserOutput(wc io.WriteCloser, timestamps bool) Output { type nopCloser (line 71) | type nopCloser struct method Close (line 75) | func (nc nopCloser) Close() error { function WriterOutput (line 93) | func WriterOutput(w io.Writer, timestamps bool) Output { FILE: framework/log/zap.go type zapLogger (line 9) | type zapLogger struct method Enabled (line 13) | func (l zapLogger) Enabled(level zapcore.Level) bool { method With (line 20) | func (l zapLogger) With(fields []zapcore.Field) zapcore.Core { method Check (line 36) | func (l zapLogger) Check(entry zapcore.Entry, ce *zapcore.CheckedEntry... method Write (line 43) | func (l zapLogger) Write(entry zapcore.Entry, fields []zapcore.Field) ... method Sync (line 55) | func (zapLogger) Sync() error { FILE: framework/logparser/parse.go type Msg (line 31) | type Msg struct type MalformedMsg (line 39) | type MalformedMsg struct method Error (line 49) | func (m MalformedMsg) Error() string { constant ISO8601_UTC (line 46) | ISO8601_UTC = "2006-01-02T15:04:05.000Z" function Parse (line 64) | func Parse(line string) (Msg, error) { FILE: framework/logparser/parse_test.go function TestParse (line 27) | func TestParse(t *testing.T) { FILE: framework/module/auth.go type PlainAuth (line 32) | type PlainAuth interface type PlainUserDB (line 38) | type PlainUserDB interface FILE: framework/module/blob_store.go type Blob (line 9) | type Blob interface constant UnknownBlobSize (line 17) | UnknownBlobSize int64 = -1 type BlobStore (line 21) | type BlobStore interface FILE: framework/module/check.go type Check (line 34) | type Check interface type EarlyCheck (line 62) | type EarlyCheck interface type CheckState (line 66) | type CheckState interface type CheckResult (line 90) | type CheckResult struct FILE: framework/module/delivery_target.go type DeliveryTarget (line 35) | type DeliveryTarget interface type Delivery (line 44) | type Delivery interface FILE: framework/module/imap_filter.go type IMAPFilter (line 31) | type IMAPFilter interface FILE: framework/module/modifier.go type Modifier (line 46) | type Modifier interface type ModifierState (line 52) | type ModifierState interface FILE: framework/module/module.go type Module (line 41) | type Module interface FILE: framework/module/module_specific_data.go type ModSpecificData (line 20) | type ModSpecificData struct method modKey (line 25) | func (msd *ModSpecificData) modKey(m Module, perInstance bool) string { method MarshalJSON (line 36) | func (msd *ModSpecificData) MarshalJSON() ([]byte, error) { method UnmarshalJSON (line 42) | func (msd *ModSpecificData) UnmarshalJSON(b []byte) error { method Set (line 48) | func (msd *ModSpecificData) Set(m Module, perInstance bool, value inte... method Get (line 58) | func (msd *ModSpecificData) Get(m Module, perInstance bool) interface{} { FILE: framework/module/modules/dummy.go type Dummy (line 37) | type Dummy struct method AuthPlain (line 39) | func (d *Dummy) AuthPlain(username, _ string) error { method Lookup (line 43) | func (d *Dummy) Lookup(_ context.Context, _ string) (string, bool, err... method LookupMulti (line 47) | func (d *Dummy) LookupMulti(_ context.Context, _ string) ([]string, er... method Name (line 51) | func (d *Dummy) Name() string { method InstanceName (line 55) | func (d *Dummy) InstanceName() string { method Configure (line 59) | func (d *Dummy) Configure(_ []string, _ *config.Map) error { method StartDelivery (line 63) | func (d *Dummy) StartDelivery(ctx context.Context, msgMeta *module.Msg... type dummyDelivery (line 67) | type dummyDelivery struct method AddRcpt (line 69) | func (dd dummyDelivery) AddRcpt(ctx context.Context, rcptTo string, op... method Body (line 73) | func (dd dummyDelivery) Body(ctx context.Context, header textproto.Hea... method Abort (line 77) | func (dd dummyDelivery) Abort(ctx context.Context) error { method Commit (line 81) | func (dd dummyDelivery) Commit(ctx context.Context) error { function NewDummy (line 85) | func NewDummy(_ *container.C, _, instName string) (module.Module, error) { FILE: framework/module/modules/modules.go type FuncNewModule (line 35) | type FuncNewModule type FuncNewEndpoint (line 49) | type FuncNewEndpoint function Register (line 63) | func Register(name string, factory FuncNewModule) { function RegisterDeprecated (line 78) | func RegisterDeprecated(name, newName string, factory FuncNewModule) { function Get (line 90) | func Get(name string) FuncNewModule { function GetEndpoint (line 100) | func GetEndpoint(name string) FuncNewEndpoint { function RegisterEndpoint (line 111) | func RegisterEndpoint(name string, factory FuncNewEndpoint) { function init (line 122) | func init() { FILE: framework/module/msgmetadata.go type ConnState (line 34) | type ConnState struct type MsgMetadata (line 84) | type MsgMetadata struct method DeepCopy (line 146) | func (msgMeta *MsgMetadata) DeepCopy() *MsgMetadata { function GenerateMsgID (line 154) | func GenerateMsgID() (string, error) { FILE: framework/module/mxauth.go constant AuthDisabled (line 27) | AuthDisabled = "off" constant AuthMTASTS (line 28) | AuthMTASTS = "mtasts" constant AuthDNSSEC (line 29) | AuthDNSSEC = "dnssec" constant AuthCommonDomain (line 30) | AuthCommonDomain = "common_domain" type TLSLevel (line 34) | type TLSLevel method String (line 50) | func (l TLSLevel) String() string { type MXLevel (line 35) | type MXLevel method String (line 62) | func (l MXLevel) String() string { constant TLSNone (line 39) | TLSNone TLSLevel = iota constant TLSEncrypted (line 40) | TLSEncrypted constant TLSAuthenticated (line 41) | TLSAuthenticated constant MXNone (line 45) | MXNone MXLevel = iota constant MX_MTASTS (line 46) | MX_MTASTS constant MX_DNSSEC (line 47) | MX_DNSSEC type MXAuthPolicy (line 98) | type MXAuthPolicy interface type DeliveryMXAuthPolicy (line 109) | type DeliveryMXAuthPolicy interface FILE: framework/module/partial_delivery.go type StatusCollector (line 31) | type StatusCollector interface type PartialDelivery (line 50) | type PartialDelivery interface FILE: framework/module/storage.go type Storage (line 30) | type Storage interface type ManageableStorage (line 44) | type ManageableStorage interface FILE: framework/module/table.go type Table (line 28) | type Table interface type MultiTable (line 34) | type MultiTable interface type MutableTable (line 38) | type MutableTable interface FILE: framework/module/tls_loader.go type TLSLoader (line 39) | type TLSLoader interface FILE: framework/resource/netresource/dup.go function dupTCPListener (line 5) | func dupTCPListener(l *net.TCPListener) (*net.TCPListener, error) { function dupUnixListener (line 17) | func dupUnixListener(l *net.UnixListener) (*net.UnixListener, error) { FILE: framework/resource/netresource/fd.go function ListenFD (line 12) | func ListenFD(fd uint) (net.Listener, error) { function ListenFDName (line 22) | func ListenFDName(name string) (net.Listener, error) { FILE: framework/resource/netresource/listen.go function CloseUnusedListeners (line 15) | func CloseUnusedListeners() error { function CloseAllListeners (line 19) | func CloseAllListeners() error { function ResetListenersUsage (line 23) | func ResetListenersUsage() { function Listen (line 27) | func Listen(network, addr string) (net.Listener, error) { FILE: framework/resource/netresource/tracker.go type ListenerTracker (line 12) | type ListenerTracker struct method Get (line 18) | func (lt *ListenerTracker) Get(network, addr string) (net.Listener, er... method ResetUsage (line 64) | func (lt *ListenerTracker) ResetUsage() { method CloseUnused (line 69) | func (lt *ListenerTracker) CloseUnused() error { method Close (line 79) | func (lt *ListenerTracker) Close() error { function NewListenerTracker (line 89) | func NewListenerTracker(log *log.Logger) *ListenerTracker { FILE: framework/resource/resource.go type CheckableResource (line 9) | type CheckableResource interface type Container (line 14) | type Container interface FILE: framework/resource/singleton.go type Singleton (line 10) | type Singleton struct function NewSingleton (line 16) | func NewSingleton[T Resource](log *log.Logger) *Singleton[T] { method GetOpen (line 23) | func (s *Singleton[T]) GetOpen(key string, open func() (T, error)) (T, e... method CloseUnused (line 45) | func (s *Singleton[T]) CloseUnused(isUsed func(key string) bool) error { method Close (line 63) | func (s *Singleton[T]) Close() error { FILE: framework/resource/tracker.go type Tracker (line 9) | type Tracker struct function NewTracker (line 16) | func NewTracker[T Resource](c Container[T]) *Tracker[T] { method Close (line 20) | func (t *Tracker[T]) Close() error { method MarkAllUnused (line 24) | func (t *Tracker[T]) MarkAllUnused() { method GetOpen (line 31) | func (t *Tracker[T]) GetOpen(key string, open func() (T, error)) (T, err... method CloseUnused (line 39) | func (t *Tracker[T]) CloseUnused(isUsed func(key string) bool) error { FILE: internal/auth/auth.go function CheckDomainAuth (line 23) | func CheckDomainAuth(username string, perDomain bool, allowedDomains []s... FILE: internal/auth/auth_test.go function TestCheckDomainAuth (line 26) | func TestCheckDomainAuth(t *testing.T) { FILE: internal/auth/dovecot_sasl/dovecot_sasl.go type Auth (line 36) | type Auth struct method Name (line 58) | func (a *Auth) Name() string { method InstanceName (line 62) | func (a *Auth) InstanceName() string { method getConn (line 66) | func (a *Auth) getConn() (*dovecotsasl.Client, error) { method returnConn (line 81) | func (a *Auth) returnConn(cl *dovecotsasl.Client) { method Configure (line 87) | func (a *Auth) Configure(inlineArgs []string, cfg *config.Map) error { method AuthPlain (line 139) | func (a *Auth) AuthPlain(username, password string) error { constant modName (line 47) | modName = "dovecot_sasl" function New (line 49) | func New(c *container.C, _, instName string) (module.Module, error) { function init (line 166) | func init() { FILE: internal/auth/external/externalauth.go type ExternalAuth (line 35) | type ExternalAuth struct method Name (line 56) | func (ea *ExternalAuth) Name() string { method InstanceName (line 60) | func (ea *ExternalAuth) InstanceName() string { method Configure (line 64) | func (ea *ExternalAuth) Configure(inlineArgs []string, cfg *config.Map... method AuthPlain (line 94) | func (ea *ExternalAuth) AuthPlain(username, password string) error { function New (line 46) | func New(c *container.C, modName, instName string) (module.Module, error) { function init (line 103) | func init() { FILE: internal/auth/external/helperauth.go function AuthUsingHelper (line 29) | func AuthUsingHelper(binaryPath, accountName, password string) error { FILE: internal/auth/ldap/ldap.go constant modName (line 22) | modName = "auth.ldap" type Auth (line 24) | type Auth struct method Configure (line 52) | func (a *Auth) Configure(inlineArgs []string, cfg *config.Map) error { method Name (line 125) | func (a *Auth) Name() string { method InstanceName (line 129) | func (a *Auth) InstanceName() string { method newConn (line 133) | func (a *Auth) newConn() (*ldap.Conn, error) { method getConn (line 175) | func (a *Auth) getConn() (*ldap.Conn, error) { method returnConn (line 199) | func (a *Auth) returnConn(conn *ldap.Conn) { method Lookup (line 216) | func (a *Auth) Lookup(_ context.Context, username string) (string, boo... method AuthPlain (line 248) | func (a *Auth) AuthPlain(username, password string) error { method Start (line 284) | func (a *Auth) Start() error { method Stop (line 293) | func (a *Auth) Stop() error { function New (line 45) | func New(c *container.C, modName, instName string) (module.Module, error) { function readBindDirective (line 96) | func readBindDirective(c *config.Map, n config.Node) (interface{}, error) { function init (line 299) | func init() { FILE: internal/auth/netauth/netauth.go constant modName (line 16) | modName = "auth.netauth" function init (line 18) | func init() { type Auth (line 26) | type Auth struct method Configure (line 43) | func (a *Auth) Configure(inlineArgs []string, cfg *config.Map) error { method Name (line 65) | func (a *Auth) Name() string { method InstanceName (line 72) | func (a *Auth) InstanceName() string { method Lookup (line 78) | func (a *Auth) Lookup(ctx context.Context, username string) (string, b... method AuthPlain (line 94) | func (a *Auth) AuthPlain(username, password string) error { method checkMustGroup (line 108) | func (a *Auth) checkMustGroup(username string) error { function New (line 36) | func New(c *container.C, modName, instName string) (module.Module, error) { FILE: internal/auth/pam/module.go type Auth (line 35) | type Auth struct method Name (line 50) | func (a *Auth) Name() string { method InstanceName (line 54) | func (a *Auth) InstanceName() string { method Configure (line 58) | func (a *Auth) Configure(inlineArgs []string, cfg *config.Map) error { method AuthPlain (line 82) | func (a *Auth) AuthPlain(username, password string) error { function New (line 43) | func New(c *container.C, modName, instName string) (module.Module, error) { function init (line 95) | func init() { FILE: internal/auth/pam/pam.c function conv_func (line 28) | static int conv_func(int num_msg, const struct pam_message **msg, struct... function run_pam_auth (line 49) | struct error_obj run_pam_auth(const char *username, char *password) { FILE: internal/auth/pam/pam.go constant canCallDirectly (line 39) | canCallDirectly = true function runPAMAuth (line 43) | func runPAMAuth(username, password string) error { FILE: internal/auth/pam/pam.h type error_obj (line 21) | struct error_obj { type error_obj (line 27) | struct error_obj FILE: internal/auth/pam/pam_stub.go constant canCallDirectly (line 28) | canCallDirectly = false function runPAMAuth (line 32) | func runPAMAuth(username, password string) error { FILE: internal/auth/pass_table/hash.go constant HashSHA256 (line 36) | HashSHA256 = "sha256" constant HashBcrypt (line 37) | HashBcrypt = "bcrypt" constant HashArgon2 (line 38) | HashArgon2 = "argon2" constant DefaultHash (line 40) | DefaultHash = HashBcrypt constant Argon2Salt (line 42) | Argon2Salt = 16 constant Argon2Size (line 43) | Argon2Size = 64 type HashOpts (line 52) | type HashOpts struct type FuncHashCompute (line 61) | type FuncHashCompute type FuncHashVerify (line 62) | type FuncHashVerify function computeArgon2 (line 78) | func computeArgon2(opts HashOpts, pass string) (string, error) { function verifyArgon2 (line 98) | func verifyArgon2(pass, hashSalt string) error { function computeSHA256 (line 129) | func computeSHA256(_ HashOpts, pass string) (string, error) { function verifySHA256 (line 141) | func verifySHA256(pass, hashSalt string) error { function computeBcrypt (line 165) | func computeBcrypt(opts HashOpts, pass string) (string, error) { function verifyBcrypt (line 173) | func verifyBcrypt(pass, hashSalt string) error { function addSHA256 (line 177) | func addSHA256() { FILE: internal/auth/pass_table/table.go type Auth (line 35) | type Auth struct method Configure (line 49) | func (a *Auth) Configure(inlineArgs []string, cfg *config.Map) error { method Name (line 59) | func (a *Auth) Name() string { method InstanceName (line 63) | func (a *Auth) InstanceName() string { method Lookup (line 67) | func (a *Auth) Lookup(ctx context.Context, username string) (string, b... method AuthPlain (line 76) | func (a *Auth) AuthPlain(username, password string) error { method ListUsers (line 101) | func (a *Auth) ListUsers() ([]string, error) { method CreateUser (line 114) | func (a *Auth) CreateUser(username, password string) error { method CreateUserHash (line 120) | func (a *Auth) CreateUserHash(username, password string, hashAlgo stri... method SetUserPassword (line 154) | func (a *Auth) SetUserPassword(username, password string) error { method DeleteUser (line 179) | func (a *Auth) DeleteUser(username string) error { function New (line 42) | func New(_ *container.C, modName, instName string) (module.Module, error) { function init (line 196) | func init() { FILE: internal/auth/pass_table/table_test.go function TestAuth_AuthPlain (line 29) | func TestAuth_AuthPlain(t *testing.T) { FILE: internal/auth/plain_separate/plain_separate.go type Auth (line 34) | type Auth struct method Name (line 57) | func (a *Auth) Name() string { method InstanceName (line 61) | func (a *Auth) InstanceName() string { method Configure (line 65) | func (a *Auth) Configure(inlineArgs []string, cfg *config.Map) error { method Lookup (line 99) | func (a *Auth) Lookup(ctx context.Context, username string) (string, b... method AuthPlain (line 117) | func (a *Auth) AuthPlain(username, password string) error { function New (line 46) | func New(c *container.C, modName, instName string) (module.Module, error) { function init (line 145) | func init() { FILE: internal/auth/plain_separate/plain_separate_test.go type mockAuth (line 30) | type mockAuth struct method SASLMechanisms (line 34) | func (mockAuth) SASLMechanisms() []string { method AuthPlain (line 38) | func (m mockAuth) AuthPlain(username, _ string) error { type mockTable (line 46) | type mockTable struct method Lookup (line 50) | func (m mockTable) Lookup(_ context.Context, a string) (string, bool, ... function TestPlainSplit_NoUser (line 55) | func TestPlainSplit_NoUser(t *testing.T) { function TestPlainSplit_NoUser_MultiPass (line 72) | func TestPlainSplit_NoUser_MultiPass(t *testing.T) { function TestPlainSplit_UserPass (line 94) | func TestPlainSplit_UserPass(t *testing.T) { function TestPlainSplit_MultiUser_Pass (line 123) | func TestPlainSplit_MultiUser_Pass(t *testing.T) { FILE: internal/auth/sasl.go type SASLAuth (line 49) | type SASLAuth struct method SASLMechanisms (line 62) | func (s *SASLAuth) SASLMechanisms() []string { method usernameForAuth (line 75) | func (s *SASLAuth) usernameForAuth(ctx context.Context, saslUsername s... method AuthPlain (line 103) | func (s *SASLAuth) AuthPlain(username, password string) error { method CreateSASL (line 137) | func (s *SASLAuth) CreateSASL( method AddProvider (line 202) | func (s *SASLAuth) AddProvider(m *config.Map, node config.Node) error { type ContextData (line 128) | type ContextData struct type FailingSASLServ (line 220) | type FailingSASLServ struct method Next (line 222) | func (s FailingSASLServ) Next([]byte) ([]byte, bool, error) { FILE: internal/auth/sasl_test.go type mockAuth (line 30) | type mockAuth struct method AuthPlain (line 34) | func (m mockAuth) AuthPlain(username, _ string) error { function TestCreateSASL (line 42) | func TestCreateSASL(t *testing.T) { FILE: internal/auth/sasllogin/sasllogin.go type LoginAuthenticator (line 8) | type LoginAuthenticator type loginState (line 9) | type loginState constant loginNotStarted (line 12) | loginNotStarted loginState = iota constant loginWaitingUsername (line 13) | loginWaitingUsername constant loginWaitingPassword (line 14) | loginWaitingPassword type loginServer (line 17) | type loginServer struct method Next (line 32) | func (a *loginServer) Next(response []byte) (challenge []byte, done bo... function NewLoginServer (line 28) | func NewLoginServer(authenticator LoginAuthenticator) sasl.Server { FILE: internal/auth/shadow/module.go type Auth (line 38) | type Auth struct method Name (line 53) | func (a *Auth) Name() string { method InstanceName (line 57) | func (a *Auth) InstanceName() string { method Configure (line 61) | func (a *Auth) Configure(inlineArgs []string, cfg *config.Map) error { method Lookup (line 93) | func (a *Auth) Lookup(username string) (string, bool, error) { method AuthPlain (line 113) | func (a *Auth) AuthPlain(username, password string) error { function New (line 46) | func New(c *container.C, modName, instName string) (module.Module, error) { function init (line 141) | func init() { FILE: internal/auth/shadow/read.go function Read (line 36) | func Read() ([]Entry, error) { function parseEntry (line 58) | func parseEntry(line string) (*Entry, error) { function Lookup (line 87) | func Lookup(name string) (*Entry, error) { FILE: internal/auth/shadow/shadow.go type Entry (line 23) | type Entry struct FILE: internal/auth/shadow/verify.go constant secsInDay (line 31) | secsInDay = 86400 method IsAccountValid (line 33) | func (e *Entry) IsAccountValid() bool { method IsPasswordValid (line 42) | func (e *Entry) IsPasswordValid() bool { method VerifyPassword (line 51) | func (e *Entry) VerifyPassword(pass string) (err error) { FILE: internal/authz/lookup.go function AuthorizeEmailUse (line 11) | func AuthorizeEmailUse(ctx context.Context, username string, addrs []str... FILE: internal/authz/normalization.go type NormalizeFunc (line 10) | type NormalizeFunc function NormalizeNoop (line 12) | func NormalizeNoop(s string) (string, error) { function NormalizeAuto (line 18) | func NormalizeAuto(s string) (string, error) { FILE: internal/check/authorize_sender/authorize_sender.go constant modName (line 40) | modName = "check.authorize_sender" type Check (line 42) | type Check struct method Name (line 65) | func (c *Check) Name() string { method InstanceName (line 69) | func (c *Check) InstanceName() string { method Configure (line 73) | func (c *Check) Configure(inlineArgs []string, cfg *config.Map) error { method CheckStateForMsg (line 117) | func (c *Check) CheckStateForMsg(_ context.Context, msgMeta *module.Ms... function New (line 58) | func New(c *container.C, modName, instName string) (module.Module, error) { type state (line 111) | type state struct method authzSender (line 125) | func (s *state) authzSender(ctx context.Context, authName, email strin... method CheckConnection (line 208) | func (s *state) CheckConnection(_ context.Context) module.CheckResult { method CheckSender (line 212) | func (s *state) CheckSender(ctx context.Context, fromEmail string) mod... method CheckRcpt (line 222) | func (s *state) CheckRcpt(_ context.Context, _ string) module.CheckRes... method CheckBody (line 226) | func (s *state) CheckBody(ctx context.Context, hdr textproto.Header, _... method Close (line 307) | func (s *state) Close() error { function init (line 311) | func init() { FILE: internal/check/command/command.go constant modName (line 48) | modName = "check.command" type Stage (line 50) | type Stage constant StageConnection (line 53) | StageConnection = "conn" constant StageSender (line 54) | StageSender = "sender" constant StageRcpt (line 55) | StageRcpt = "rcpt" constant StageBody (line 56) | StageBody = "body" type Check (line 61) | type Check struct method Name (line 88) | func (c *Check) Name() string { method InstanceName (line 92) | func (c *Check) InstanceName() string { method Configure (line 96) | func (c *Check) Configure(inlineArgs []string, cfg *config.Map) error { method CheckStateForMsg (line 152) | func (c *Check) CheckStateForMsg(ctx context.Context, msgMeta *module.... function New (line 71) | func New(c *container.C, modName, instName string) (module.Module, error) { type state (line 143) | type state struct method expandCommand (line 160) | func (s *state) expandCommand(address string) (string, []string) { method run (line 213) | func (s *state) run(cmdName string, args []string, stdin io.Reader) mo... method errorRes (line 285) | func (s *state) errorRes(err error, res module.CheckResult, cmdLine st... method CheckConnection (line 332) | func (s *state) CheckConnection(ctx context.Context) module.CheckResult { method CheckSender (line 343) | func (s *state) CheckSender(ctx context.Context, addr string) module.C... method CheckRcpt (line 356) | func (s *state) CheckRcpt(ctx context.Context, addr string) module.Che... method CheckBody (line 368) | func (s *state) CheckBody(ctx context.Context, hdr textproto.Header, b... method Close (line 398) | func (s *state) Close() error { function init (line 402) | func init() { FILE: internal/check/dkim/dkim.go type Check (line 45) | type Check struct method Configure (line 65) | func (c *Check) Configure(inlineArgs []string, cfg *config.Map) error { method Name (line 96) | func (c *Check) Name() string { method InstanceName (line 100) | func (c *Check) InstanceName() string { method CheckStateForMsg (line 265) | func (c *Check) CheckStateForMsg(ctx context.Context, msgMeta *module.... function New (line 57) | func New(c *container.C, modName, instName string) (module.Module, error) { type dkimCheckState (line 104) | type dkimCheckState struct method CheckConnection (line 110) | func (d *dkimCheckState) CheckConnection(ctx context.Context) module.C... method CheckSender (line 114) | func (d *dkimCheckState) CheckSender(ctx context.Context, mailFrom str... method CheckRcpt (line 118) | func (d *dkimCheckState) CheckRcpt(ctx context.Context, rcptTo string)... method CheckBody (line 122) | func (d *dkimCheckState) CheckBody(ctx context.Context, header textpro... method Name (line 257) | func (d *dkimCheckState) Name() string { method Close (line 261) | func (d *dkimCheckState) Close() error { function init (line 273) | func init() { FILE: internal/check/dkim/dkim_test.go constant unsignedMailString (line 37) | unsignedMailString = `From: Joe SixPack constant dnsPublicKey (line 50) | dnsPublicKey = "v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQ" + constant verifiedMailString (line 62) | verifiedMailString = `DKIM-Signature: v=1; a=rsa-sha256; s=brisbane; d=e... function testCheck (line 86) | func testCheck(t *testing.T, zones map[string]mockdns.Zone, cfg []config... function TestDkimVerify_NoSig (line 103) | func TestDkimVerify_NoSig(t *testing.T) { function TestDkimVerify_InvalidSig (line 135) | func TestDkimVerify_InvalidSig(t *testing.T) { function TestDkimVerify_ValidSig (line 170) | func TestDkimVerify_ValidSig(t *testing.T) { function TestDkimVerify_RequiredFields (line 197) | func TestDkimVerify_RequiredFields(t *testing.T) { function TestDkimVerify_BufferOpenFail (line 236) | func TestDkimVerify_BufferOpenFail(t *testing.T) { function TestDkimVerify_FailClosed (line 265) | func TestDkimVerify_FailClosed(t *testing.T) { function TestDkimVerify_FailOpen (line 312) | func TestDkimVerify_FailOpen(t *testing.T) { FILE: internal/check/dns/dns.go function requireMatchingRDNS (line 32) | func requireMatchingRDNS(ctx check.StatelessCheckContext) module.CheckRe... function requireMXRecord (line 88) | func requireMXRecord(ctx check.StatelessCheckContext, mailFrom string) m... function init (line 158) | func init() { FILE: internal/check/dns/dns_test.go function TestRequireMatchingRDNS (line 32) | func TestRequireMatchingRDNS(t *testing.T) { function TestRequireMXRecord (line 80) | func TestRequireMXRecord(t *testing.T) { FILE: internal/check/dnsbl/common.go type ListedErr (line 31) | type ListedErr struct method Fields (line 39) | func (le ListedErr) Fields() map[string]interface{} { method Error (line 55) | func (le ListedErr) Error() string { function checkDomain (line 59) | func checkDomain(ctx context.Context, resolver dns.Resolver, cfg List, d... function matchResponseRules (line 126) | func matchResponseRules(addrs []net.IPAddr, rules []ResponseRule) (score... function checkIP (line 154) | func checkIP(ctx context.Context, resolver dns.Resolver, cfg List, ip ne... function queryString (line 248) | func queryString(ip net.IP) string { FILE: internal/check/dnsbl/common_test.go function TestQueryString (line 30) | func TestQueryString(t *testing.T) { function TestCheckDomain (line 50) | func TestCheckDomain(t *testing.T) { function TestCheckIP (line 119) | func TestCheckIP(t *testing.T) { function TestCheckDomainWithResponseRules (line 240) | func TestCheckDomainWithResponseRules(t *testing.T) { FILE: internal/check/dnsbl/dnsbl.go type ResponseRule (line 43) | type ResponseRule struct type List (line 49) | type List struct type DNSBL (line 68) | type DNSBL struct method Name (line 89) | func (bl *DNSBL) Name() string { method InstanceName (line 93) | func (bl *DNSBL) InstanceName() string { method Configure (line 97) | func (bl *DNSBL) Configure(inlineArgs []string, cfg *config.Map) error { method readListCfg (line 124) | func (bl *DNSBL) readListCfg(node config.Node) error { method testList (line 235) | func (bl *DNSBL) testList(listCfg List) { method checkList (line 312) | func (bl *DNSBL) checkList(ctx context.Context, list List, ip net.IP, ... method checkLists (line 351) | func (bl *DNSBL) checkLists(ctx context.Context, ip net.IP, ehlo, mail... method CheckConnection (line 443) | func (bl *DNSBL) CheckConnection(ctx context.Context, state *module.Co... method CheckStateForMsg (line 470) | func (bl *DNSBL) CheckStateForMsg(ctx context.Context, msgMeta *module... function New (line 80) | func New(c *container.C, modName, instName string) (module.Module, error) { function parseResponseRule (line 197) | func parseResponseRule(node config.Node) (ResponseRule, error) { type state (line 464) | type state struct method CheckConnection (line 478) | func (s *state) CheckConnection(ctx context.Context) module.CheckResult { method CheckSender (line 494) | func (*state) CheckSender(context.Context, string) module.CheckResult { method CheckRcpt (line 498) | func (*state) CheckRcpt(context.Context, string) module.CheckResult { method CheckBody (line 502) | func (*state) CheckBody(context.Context, textproto.Header, buffer.Buff... method Close (line 506) | func (*state) Close() error { function init (line 510) | func init() { FILE: internal/check/dnsbl/dnsbl_test.go function TestCheckList (line 31) | func TestCheckList(t *testing.T) { function TestCheckLists (line 122) | func TestCheckLists(t *testing.T) { function TestCheckIPWithResponseRules (line 215) | func TestCheckIPWithResponseRules(t *testing.T) { function TestCheckListsWithResponseRules (line 376) | func TestCheckListsWithResponseRules(t *testing.T) { FILE: internal/check/milter/milter.go constant modName (line 41) | modName = "check.milter" type Check (line 43) | type Check struct method Name (line 60) | func (c *Check) Name() string { method InstanceName (line 64) | func (c *Check) InstanceName() string { method Configure (line 68) | func (c *Check) Configure(inlineArgs []string, cfg *config.Map) error { method CheckStateForMsg (line 119) | func (c *Check) CheckStateForMsg(ctx context.Context, msgMeta *module.... function New (line 51) | func New(c *container.C, _, instName string) (module.Module, error) { type state (line 111) | type state struct method handleAction (line 132) | func (s *state) handleAction(act *milter.Action) module.CheckResult { method apply (line 191) | func (s *state) apply(modifyActs []milter.ModifyAction, res module.Che... method CheckConnection (line 228) | func (s *state) CheckConnection(ctx context.Context) module.CheckResult { method ioError (line 328) | func (s *state) ioError(err error) module.CheckResult { method CheckSender (line 350) | func (s *state) CheckSender(ctx context.Context, mailFrom string) modu... method CheckRcpt (line 377) | func (s *state) CheckRcpt(ctx context.Context, rcptTo string) module.C... method CheckBody (line 389) | func (s *state) CheckBody(ctx context.Context, header textproto.Header... method Close (line 439) | func (s *state) Close() error { function init (line 448) | func init() { FILE: internal/check/milter/milter_test.go function TestAcceptValidEndpoints (line 27) | func TestAcceptValidEndpoints(t *testing.T) { function TestRejectInvalidEndpoints (line 49) | func TestRejectInvalidEndpoints(t *testing.T) { FILE: internal/check/requiretls/requiretls.go function requireTLS (line 28) | func requireTLS(ctx check.StatelessCheckContext) module.CheckResult { function init (line 43) | func init() { FILE: internal/check/rspamd/rspamd.go constant modName (line 46) | modName = "check.rspamd" type Check (line 48) | type Check struct method Name (line 78) | func (c *Check) Name() string { method InstanceName (line 82) | func (c *Check) InstanceName() string { method Configure (line 86) | func (c *Check) Configure(inlineArgs []string, cfg *config.Map) error { method CheckStateForMsg (line 157) | func (c *Check) CheckStateForMsg(ctx context.Context, msgMeta *module.... function New (line 68) | func New(c *container.C, modName, instName string) (module.Module, error) { type state (line 148) | type state struct method CheckConnection (line 165) | func (s *state) CheckConnection(ctx context.Context) module.CheckResult { method CheckSender (line 169) | func (s *state) CheckSender(ctx context.Context, addr string) module.C... method CheckRcpt (line 174) | func (s *state) CheckRcpt(ctx context.Context, addr string) module.Che... method CheckBody (line 218) | func (s *state) CheckBody(ctx context.Context, hdr textproto.Header, b... method Close (line 378) | func (s *state) Close() error { function addConnHeaders (line 179) | func addConnHeaders(r *http.Request, meta *module.MsgMetadata, mailFrom ... type response (line 368) | type response struct function init (line 382) | func init() { FILE: internal/check/skeleton.go constant modName (line 41) | modName = "check_things" type Check (line 43) | type Check struct method Name (line 54) | func (c *Check) Name() string { method InstanceName (line 58) | func (c *Check) InstanceName() string { method Init (line 62) | func (c *Check) Init(cfg *config.Map) error { method CheckStateForMsg (line 72) | func (c *Check) CheckStateForMsg(ctx context.Context, msgMeta *module.... function New (line 48) | func New(modName, instName string, aliases, inlineArgs []string) (module... type state (line 66) | type state struct method CheckConnection (line 80) | func (s *state) CheckConnection(ctx context.Context) module.CheckResult { method CheckSender (line 84) | func (s *state) CheckSender(ctx context.Context, addr string) module.C... method CheckRcpt (line 88) | func (s *state) CheckRcpt(ctx context.Context, addr string) module.Che... method CheckBody (line 92) | func (s *state) CheckBody(ctx context.Context, hdr textproto.Header, b... method Close (line 96) | func (s *state) Close() error { function init (line 100) | func init() { FILE: internal/check/spf/spf.go constant modName (line 48) | modName = "check.spf" type Check (line 50) | type Check struct method Name (line 73) | func (c *Check) Name() string { method InstanceName (line 77) | func (c *Check) InstanceName() string { method Configure (line 81) | func (c *Check) Configure(inlineArgs []string, cfg *config.Map) error { method CheckStateForMsg (line 130) | func (c *Check) CheckStateForMsg(ctx context.Context, msgMeta *module.... function New (line 65) | func New(c *container.C, _, instName string) (module.Module, error) { type spfRes (line 116) | type spfRes struct type state (line 121) | type state struct method spfResult (line 139) | func (s *state) spfResult(res spf.Result, err error) module.CheckResult { method relyOnDMARC (line 243) | func (s *state) relyOnDMARC(ctx context.Context, hdr textproto.Header)... method CheckConnection (line 303) | func (s *state) CheckConnection(ctx context.Context) module.CheckResult { method CheckSender (line 371) | func (s *state) CheckSender(ctx context.Context, mailFrom string) modu... method CheckRcpt (line 375) | func (s *state) CheckRcpt(ctx context.Context, rcptTo string) module.C... method CheckBody (line 379) | func (s *state) CheckBody(ctx context.Context, header textproto.Header... method Close (line 416) | func (s *state) Close() error { function prepareMailFrom (line 270) | func prepareMailFrom(from string) (string, error) { function init (line 420) | func init() { FILE: internal/check/stateless_check.go type StatelessCheckContext (line 39) | type StatelessCheckContext struct type FuncConnCheck (line 54) | type FuncConnCheck type FuncSenderCheck (line 55) | type FuncSenderCheck type FuncRcptCheck (line 56) | type FuncRcptCheck type FuncBodyCheck (line 57) | type FuncBodyCheck type statelessCheck (line 60) | type statelessCheck struct method CheckStateForMsg (line 150) | func (c *statelessCheck) CheckStateForMsg(ctx context.Context, msgMeta... method Configure (line 157) | func (c *statelessCheck) Configure(inlineArgs []string, cfg *config.Ma... method Name (line 171) | func (c *statelessCheck) Name() string { method InstanceName (line 175) | func (c *statelessCheck) InstanceName() string { type statelessCheckState (line 77) | type statelessCheckState struct method String (line 82) | func (s *statelessCheckState) String() string { method CheckConnection (line 86) | func (s *statelessCheckState) CheckConnection(ctx context.Context) mod... method CheckSender (line 101) | func (s *statelessCheckState) CheckSender(ctx context.Context, mailFro... method CheckRcpt (line 116) | func (s *statelessCheckState) CheckRcpt(ctx context.Context, rcptTo st... method CheckBody (line 131) | func (s *statelessCheckState) CheckBody(ctx context.Context, header te... method Close (line 146) | func (s *statelessCheckState) Close() error { function RegisterStatelessCheck (line 189) | func RegisterStatelessCheck(name string, defaultFailAction modconfig.Fai... FILE: internal/cli/app.go function init (line 14) | func init() { function AddGlobalFlag (line 77) | func AddGlobalFlag(f cli.Flag) { function AddSubcommand (line 81) | func AddSubcommand(cmd *cli.Command) { function RunWithoutExit (line 87) | func RunWithoutExit() int { function Run (line 100) | func Run() { FILE: internal/cli/clitools/clitools.go function Confirmation (line 30) | func Confirmation(prompt string, def bool) bool { function readPass (line 52) | func readPass(tty *os.File, output []byte) ([]byte, error) { function ReadPassword (line 89) | func ReadPassword(prompt string) (string, error) { FILE: internal/cli/clitools/termios.go type Termios (line 34) | type Termios struct function TurnOnRawIO (line 48) | func TurnOnRawIO(tty *os.File) (orig Termios, err error) { function TcSetAttr (line 67) | func TcSetAttr(fd uintptr, termios *Termios) error { function TcGetAttr (line 75) | func TcGetAttr(fd uintptr) (*Termios, error) { FILE: internal/cli/clitools/termios_stub.go type Termios (line 29) | type Termios struct function TurnOnRawIO (line 39) | func TurnOnRawIO(tty *os.File) (orig Termios, err error) { function TcSetAttr (line 43) | func TcSetAttr(fd uintptr, termios *Termios) error { function TcGetAttr (line 47) | func TcGetAttr(fd uintptr) (*Termios, error) { FILE: internal/cli/ctl/appendlimit.go type AppendLimitUser (line 33) | type AppendLimitUser interface function imapAcctAppendlimit (line 41) | func imapAcctAppendlimit(be module.Storage, ctx *cli.Context) error { FILE: internal/cli/ctl/hash.go function init (line 33) | func init() { function hashCommand (line 74) | func hashCommand(ctx *cli.Context) error { FILE: internal/cli/ctl/imap.go function init (line 38) | func init() { function FormatAddress (line 412) | func FormatAddress(addr *imap.Address) string { function FormatAddressList (line 416) | func FormatAddressList(addrs []*imap.Address) string { function mboxesList (line 424) | func mboxesList(be module.Storage, ctx *cli.Context) error { function mboxesCreate (line 455) | func mboxesCreate(be module.Storage, ctx *cli.Context) error { function mboxesRemove (line 485) | func mboxesRemove(be module.Storage, ctx *cli.Context) error { function mboxesRename (line 518) | func mboxesRename(be module.Storage, ctx *cli.Context) error { function msgsAdd (line 540) | func msgsAdd(be module.Storage, ctx *cli.Context) error { function msgsRemove (line 589) | func msgsRemove(be module.Storage, ctx *cli.Context) error { function msgsCopy (line 632) | func msgsCopy(be module.Storage, ctx *cli.Context) error { function msgsMove (line 672) | func msgsMove(be module.Storage, ctx *cli.Context) error { function msgsList (line 714) | func msgsList(be module.Storage, ctx *cli.Context) error { function msgsDump (line 794) | func msgsDump(be module.Storage, ctx *cli.Context) error { function msgsFlags (line 842) | func msgsFlags(be module.Storage, ctx *cli.Context) error { FILE: internal/cli/ctl/imapacct.go function init (line 33) | func init() { type SpecialUseUser (line 193) | type SpecialUseUser interface function imapAcctList (line 197) | func imapAcctList(be module.Storage, ctx *cli.Context) error { function imapAcctCreate (line 218) | func imapAcctCreate(be module.Storage, ctx *cli.Context) error { function imapAcctRemove (line 283) | func imapAcctRemove(be module.Storage, ctx *cli.Context) error { FILE: internal/cli/ctl/moduleinit.go function closeIfNeeded (line 34) | func closeIfNeeded(i any) { type managedStorage (line 42) | type managedStorage struct method Close (line 47) | func (m *managedStorage) Close() error { type managedUserDB (line 57) | type managedUserDB struct method Close (line 62) | func (m *managedUserDB) Close() error { function getCfgBlockModule (line 72) | func getCfgBlockModule(ctx *cli.Context) (*container.C, module.Module, e... function openStorage (line 121) | func openStorage(ctx *cli.Context) (module.Storage, error) { function openUserDB (line 156) | func openUserDB(ctx *cli.Context) (module.PlainUserDB, error) { FILE: internal/cli/ctl/users.go function init (line 35) | func init() { function usersList (line 169) | func usersList(be module.PlainUserDB, ctx *cli.Context) error { function usersCreate (line 185) | func usersCreate(be module.PlainUserDB, ctx *cli.Context) error { function usersRemove (line 213) | func usersRemove(be module.PlainUserDB, ctx *cli.Context) error { function usersPassword (line 228) | func usersPassword(be module.PlainUserDB, ctx *cli.Context) error { FILE: internal/cli/extflag.go type extFlag (line 10) | type extFlag struct method Apply (line 14) | func (e *extFlag) Apply(fs *flag.FlagSet) error { method Names (line 19) | func (e *extFlag) Names() []string { method IsSet (line 23) | func (e *extFlag) IsSet() bool { method String (line 27) | func (e *extFlag) String() string { method IsVisible (line 31) | func (e *extFlag) IsVisible() bool { method TakesValue (line 35) | func (e *extFlag) TakesValue() bool { method GetUsage (line 39) | func (e *extFlag) GetUsage() string { method GetValue (line 43) | func (e *extFlag) GetValue() string { method GetDefaultText (line 47) | func (e *extFlag) GetDefaultText() string { method GetEnvVars (line 51) | func (e *extFlag) GetEnvVars() []string { function mapStdlibFlags (line 55) | func mapStdlibFlags(app *cli.App) { FILE: internal/dmarc/dmarc.go type Resolver (line 28) | type Resolver interface constant PolicyNone (line 39) | PolicyNone = dmarc.PolicyNone constant PolicyReject (line 40) | PolicyReject = dmarc.PolicyReject constant PolicyQuarantine (line 41) | PolicyQuarantine = dmarc.PolicyQuarantine FILE: internal/dmarc/evaluate.go function FetchRecord (line 40) | func FetchRecord(ctx context.Context, r Resolver, fromDomain string) (po... type EvalResult (line 90) | type EvalResult struct function EvaluateAlignment (line 118) | func EvaluateAlignment(fromDomain string, record *Record, results []auth... function isAligned (line 205) | func isAligned(fromDomain, authDomain string, mode AlignmentMode) bool { function ExtractFromDomain (line 226) | func ExtractFromDomain(hdr textproto.Header) (string, error) { FILE: internal/dmarc/evaluate_test.go function TestEvaluateAlignment (line 31) | func TestEvaluateAlignment(t *testing.T) { function TestExtractDomains (line 459) | func TestExtractDomains(t *testing.T) { FILE: internal/dmarc/verifier.go type verifyData (line 33) | type verifyData struct type errPanic (line 42) | type errPanic struct method Error (line 46) | func (errPanic) Error() string { type Verifier (line 54) | type Verifier struct method Close (line 73) | func (v *Verifier) Close() error { method FetchRecord (line 84) | func (v *Verifier) FetchRecord(ctx context.Context, header textproto.H... method Apply (line 129) | func (v *Verifier) Apply(authRes []authres.Result) (EvalResult, Policy) { function NewVerifier (line 66) | func NewVerifier(r Resolver) *Verifier { FILE: internal/dmarc/verifier_test.go function TestDMARC (line 35) | func TestDMARC(t *testing.T) { FILE: internal/dsn/dsn.go type ReportingMTAInfo (line 38) | type ReportingMTAInfo struct method WriteTo (line 55) | func (info ReportingMTAInfo) WriteTo(utf8 bool, w io.Writer) error { type Action (line 106) | type Action constant ActionFailed (line 109) | ActionFailed Action = "failed" constant ActionDelayed (line 110) | ActionDelayed Action = "delayed" constant ActionDelivered (line 111) | ActionDelivered Action = "delivered" constant ActionRelayed (line 112) | ActionRelayed Action = "relayed" constant ActionExpanded (line 113) | ActionExpanded Action = "expanded" type RecipientInfo (line 116) | type RecipientInfo struct method WriteTo (line 127) | func (info RecipientInfo) WriteTo(utf8 bool, w io.Writer) error { type Envelope (line 182) | type Envelope struct function GenerateDSN (line 191) | func GenerateDSN(utf8 bool, envelope Envelope, mtaInfo ReportingMTAInfo,... function writeHeader (line 217) | func writeHeader(utf8 bool, w *textproto.MultipartWriter, header textpro... function writeMachineReadablePart (line 233) | func writeMachineReadablePart(utf8 bool, w *textproto.MultipartWriter, m... function writeHumanReadablePart (line 275) | func writeHumanReadablePart(w *textproto.MultipartWriter, mtaInfo Report... FILE: internal/endpoint/dovecot_sasld/dovecot_sasl.go constant modName (line 40) | modName = "dovecot_sasld" type Endpoint (line 42) | type Endpoint struct method Name (line 64) | func (endp *Endpoint) Name() string { method InstanceName (line 68) | func (endp *Endpoint) InstanceName() string { method Configure (line 72) | func (endp *Endpoint) Configure(_ []string, cfg *config.Map) error { method Start (line 111) | func (endp *Endpoint) Start() error { method Stop (line 132) | func (endp *Endpoint) Stop() error { function New (line 53) | func New(c *container.C, _ string, addrs []string) (container.LifetimeMo... function init (line 137) | func init() { FILE: internal/endpoint/imap/imap.go type Endpoint (line 54) | type Endpoint struct method Configure (line 86) | func (endp *Endpoint) Configure(_ []string, cfg *config.Map) error { method Start (line 165) | func (endp *Endpoint) Start() error { method setupListeners (line 181) | func (endp *Endpoint) setupListeners(addresses []config.Endpoint) error { method Name (line 215) | func (endp *Endpoint) Name() string { method InstanceName (line 219) | func (endp *Endpoint) InstanceName() string { method Stop (line 223) | func (endp *Endpoint) Stop() error { method usernameForStorage (line 236) | func (endp *Endpoint) usernameForStorage(ctx context.Context, saslUser... method openAccount (line 261) | func (endp *Endpoint) openAccount(c imapserver.Conn, identity string) ... method Login (line 281) | func (endp *Endpoint) Login(connInfo *imap.ConnInfo, username, passwor... method I18NLevel (line 301) | func (endp *Endpoint) I18NLevel() int { method enableExtensions (line 309) | func (endp *Endpoint) enableExtensions() error { method SupportedThreadAlgorithms (line 329) | func (endp *Endpoint) SupportedThreadAlgorithms() []sortthread.ThreadA... function New (line 73) | func New(c *container.C, modName string, addrs []string) (container.Life... function init (line 338) | func init() { FILE: internal/endpoint/openmetrics/om.go constant modName (line 35) | modName = "openmetrics" type Endpoint (line 37) | type Endpoint struct method Configure (line 54) | func (e *Endpoint) Configure(inlineArgs []string, cfg *config.Map) err... method Name (line 78) | func (e *Endpoint) Name() string { method InstanceName (line 82) | func (e *Endpoint) InstanceName() string { method Start (line 86) | func (e *Endpoint) Start() error { method Stop (line 109) | func (e *Endpoint) Stop() error { function New (line 47) | func New(c *container.C, _ string, args []string) (container.LifetimeMod... function init (line 117) | func init() { FILE: internal/endpoint/smtp/date.go function parseMessageDateTime (line 57) | func parseMessageDateTime(maybeDate string) (time.Time, error) { FILE: internal/endpoint/smtp/metrics.go function init (line 81) | func init() { FILE: internal/endpoint/smtp/session.go function limitReader (line 45) | func limitReader(r io.Reader, n int64, err error) *limitedReader { type limitedReader (line 49) | type limitedReader struct method Read (line 58) | func (l *limitedReader) Read(p []byte) (n int, err error) { type Session (line 73) | type Session struct method AuthMechanisms (line 101) | func (s *Session) AuthMechanisms() []string { method Auth (line 105) | func (s *Session) Auth(mech string) (sasl.Server, error) { method Reset (line 113) | func (s *Session) Reset() { method releaseLimits (line 123) | func (s *Session) releaseLimits() { method abort (line 140) | func (s *Session) abort(ctx context.Context) { method cleanSession (line 149) | func (s *Session) cleanSession() { method AuthPlain (line 161) | func (s *Session) AuthPlain(username, password string) error { method startDelivery (line 183) | func (s *Session) startDelivery(ctx context.Context, from string, opts... method Mail (line 277) | func (s *Session) Mail(from string, opts *smtp.MailOptions) error { method fetchRDNSName (line 303) | func (s *Session) fetchRDNSName(ctx context.Context) { method Rcpt (line 336) | func (s *Session) Rcpt(to string, opts *smtp.RcptOptions) error { method rcpt (line 378) | func (s *Session) rcpt(ctx context.Context, to string, opts *smtp.Rcpt... method Logout (line 400) | func (s *Session) Logout() error { method prepareBody (line 420) | func (s *Session) prepareBody(r io.Reader) (textproto.Header, buffer.B... method Data (line 451) | func (s *Session) Data(r io.Reader) error { method LMTPData (line 506) | func (s *Session) LMTPData(r io.Reader, sc smtp.StatusCollector) error { method checkRoutingLoops (line 552) | func (s *Session) checkRoutingLoops(header textproto.Header) error { type statusWrapper (line 497) | type statusWrapper struct method SetStatus (line 502) | func (sw statusWrapper) SetStatus(rcpt string, err error) { method wrapErr (line 572) | func (endp *Endpoint) wrapErr(msgId string, mangleUTF8 bool, command str... FILE: internal/endpoint/smtp/smtp.go type Endpoint (line 56) | type Endpoint struct method Name (line 86) | func (endp *Endpoint) Name() string { method InstanceName (line 90) | func (endp *Endpoint) InstanceName() string { method Configure (line 111) | func (endp *Endpoint) Configure(_ []string, cfg *config.Map) error { method setConfig (line 239) | func (endp *Endpoint) setConfig(cfg *config.Map) error { method Start (line 324) | func (endp *Endpoint) Start() error { method authErrorMap (line 334) | func (endp *Endpoint) authErrorMap(err error) error { method setupListeners (line 350) | func (endp *Endpoint) setupListeners(addresses []config.Endpoint) error { method NewSession (line 385) | func (endp *Endpoint) NewSession(conn *smtp.Conn) (smtp.Session, error) { method newSession (line 401) | func (endp *Endpoint) newSession(conn *smtp.Conn) *Session { method ConnectionCount (line 444) | func (endp *Endpoint) ConnectionCount() int { method Stop (line 448) | func (endp *Endpoint) Stop() error { function New (line 94) | func New(c *container.C, modName string, addrs []string) (container.Life... function autoBufferMode (line 153) | func autoBufferMode(maxSize int, dir string) func(io.Reader) (buffer.Buf... function bufferModeDirective (line 185) | func bufferModeDirective(_ *config.Map, node config.Node) (interface{}, ... function init (line 461) | func init() { FILE: internal/endpoint/smtp/smtp_test.go constant testMsg (line 48) | testMsg = "From: \r\n" + function testEndpoint (line 53) | func testEndpoint(t *testing.T, modName string, authMod module.PlainAuth... function submitMsg (line 121) | func submitMsg(t *testing.T, cl *smtp.Client, from string, rcpts []strin... function submitMsgOpts (line 125) | func submitMsgOpts(t *testing.T, cl *smtp.Client, from string, rcpts []s... function TestSMTPDelivery (line 150) | func TestSMTPDelivery(t *testing.T) { function TestSMTPDelivery_rDNSError (line 192) | func TestSMTPDelivery_rDNSError(t *testing.T) { function TestSMTPDelivery_EarlyCheck_Fail (line 233) | func TestSMTPDelivery_EarlyCheck_Fail(t *testing.T) { function TestSMTPDeliver_CheckError (line 273) | func TestSMTPDeliver_CheckError(t *testing.T) { function TestSMTPDeliver_CheckError_Deferred (line 316) | func TestSMTPDeliver_CheckError_Deferred(t *testing.T) { function TestSMTPDelivery_Multi (line 370) | func TestSMTPDelivery_Multi(t *testing.T) { function TestSMTPDelivery_AbortData (line 412) | func TestSMTPDelivery_AbortData(t *testing.T) { function TestSMTPDelivery_EmptyMessage (line 454) | func TestSMTPDelivery_EmptyMessage(t *testing.T) { function TestSMTPDelivery_AbortLogout (line 497) | func TestSMTPDelivery_AbortLogout(t *testing.T) { function TestSMTPDelivery_Reset (line 532) | func TestSMTPDelivery_Reset(t *testing.T) { function TestSMTPDelivery_SubmissionAuthRequire (line 571) | func TestSMTPDelivery_SubmissionAuthRequire(t *testing.T) { function TestSMTPDelivery_SubmissionAuthOK (line 591) | func TestSMTPDelivery_SubmissionAuthOK(t *testing.T) { function TestMain (line 637) | func TestMain(m *testing.M) { FILE: internal/endpoint/smtp/smtputf8_test.go function TestSMTPUTF8_MangleStatusMessage (line 34) | func TestSMTPUTF8_MangleStatusMessage(t *testing.T) { function TestSMTP_RejectNonASCIIFrom (line 78) | func TestSMTP_RejectNonASCIIFrom(t *testing.T) { function TestSMTPUTF8_NormalizeCaseFoldFrom (line 109) | func TestSMTPUTF8_NormalizeCaseFoldFrom(t *testing.T) { function TestSMTP_RejectNonASCIIRcpt (line 140) | func TestSMTP_RejectNonASCIIRcpt(t *testing.T) { function TestSMTPUTF8_NormalizeCaseFoldRcpt (line 171) | func TestSMTPUTF8_NormalizeCaseFoldRcpt(t *testing.T) { function TestSMTPUTF8_NoMangleStatusMessage (line 202) | func TestSMTPUTF8_NoMangleStatusMessage(t *testing.T) { function TestSMTPUTF8_Received_EHLO_ALabel (line 248) | func TestSMTPUTF8_Received_EHLO_ALabel(t *testing.T) { function TestSMTPUTF8_Received_rDNS_ALabel (line 286) | func TestSMTPUTF8_Received_rDNS_ALabel(t *testing.T) { function TestSMTPUTF8_Received_rDNS_ULabel (line 324) | func TestSMTPUTF8_Received_rDNS_ULabel(t *testing.T) { function TestSMTPUTF8_Received_EHLO_ULabel (line 364) | func TestSMTPUTF8_Received_EHLO_ULabel(t *testing.T) { FILE: internal/endpoint/smtp/submission.go method submissionPrepare (line 45) | func (s *Session) submissionPrepare(msgMeta *module.MsgMetadata, header ... FILE: internal/endpoint/smtp/submission_test.go function init (line 33) | func init() { function TestSubmissionPrepare (line 43) | func TestSubmissionPrepare(t *testing.T) { FILE: internal/imap_filter/command/command.go constant modName (line 41) | modName = "imap.filter.command" type Check (line 45) | type Check struct method IMAPFilter (line 53) | func (c *Check) IMAPFilter(accountName string, rcptTo string, msgMeta ... method Name (line 75) | func (c *Check) Name() string { method InstanceName (line 79) | func (c *Check) InstanceName() string { method Configure (line 83) | func (c *Check) Configure(inlineArgs []string, cfg *config.Map) error { method expandCommand (line 100) | func (c *Check) expandCommand(msgMeta *module.MsgMetadata, accountName... method run (line 161) | func (c *Check) run(cmdName string, args []string, stdin io.Reader) (s... function New (line 66) | func New(c *container.C, _, instName string) (module.Module, error) { function init (line 207) | func init() { FILE: internal/imap_filter/group.go type Group (line 36) | type Group struct method IMAPFilter (line 49) | func (g *Group) IMAPFilter(accountName string, rcptTo string, meta *mo... method Configure (line 71) | func (g *Group) Configure(inlineArgs []string, cfg *config.Map) error { method Name (line 84) | func (g *Group) Name() string { method InstanceName (line 88) | func (g *Group) InstanceName() string { function NewGroup (line 42) | func NewGroup(c *container.C, modName, instName string) (module.Module, ... function init (line 92) | func init() { FILE: internal/libdns/acmedns.go function init (line 14) | func init() { FILE: internal/libdns/alidns.go function init (line 14) | func init() { FILE: internal/libdns/cloudflare.go function init (line 14) | func init() { FILE: internal/libdns/digitalocean.go function init (line 14) | func init() { FILE: internal/libdns/gandi.go function init (line 17) | func init() { FILE: internal/libdns/gcore.go function init (line 15) | func init() { FILE: internal/libdns/googleclouddns.go function init (line 14) | func init() { FILE: internal/libdns/hetzner.go function init (line 15) | func init() { FILE: internal/libdns/leaseweb.go function init (line 15) | func init() { FILE: internal/libdns/metaname.go function init (line 14) | func init() { FILE: internal/libdns/namecheap.go function init (line 14) | func init() { FILE: internal/libdns/namedotcom.go function init (line 15) | func init() { FILE: internal/libdns/provider_module.go type ProviderModule (line 8) | type ProviderModule struct method Configure (line 18) | func (p *ProviderModule) Configure(inlineArgs []string, cfg *config.Ma... method Name (line 29) | func (p *ProviderModule) Name() string { method InstanceName (line 33) | func (p *ProviderModule) InstanceName() string { FILE: internal/libdns/rfc2136.go function init (line 14) | func init() { FILE: internal/libdns/route53.go function init (line 14) | func init() { FILE: internal/libdns/vultr.go function init (line 15) | func init() { FILE: internal/limits/limiters/bucket.go type BucketSet (line 39) | type BucketSet struct method Close (line 72) | func (r *BucketSet) Close() { method take (line 81) | func (r *BucketSet) take(key string) L { method Take (line 122) | func (r *BucketSet) Take(key string) bool { method Release (line 131) | func (r *BucketSet) Release(key string) { method TakeContext (line 146) | func (r *BucketSet) TakeContext(ctx context.Context, key string) error { function NewBucketSet (line 60) | func NewBucketSet(new_ func() L, reapInterval time.Duration, maxBuckets ... FILE: internal/limits/limiters/concurrency.go type Semaphore (line 28) | type Semaphore struct method Take (line 36) | func (s Semaphore) Take() bool { method TakeContext (line 44) | func (s Semaphore) TakeContext(ctx context.Context) error { method Release (line 56) | func (s Semaphore) Release() { method Close (line 67) | func (s Semaphore) Close() { function NewSemaphore (line 32) | func NewSemaphore(max int) Semaphore { FILE: internal/limits/limiters/limiters.go type L (line 28) | type L interface FILE: internal/limits/limiters/multilimit.go type MultiLimit (line 27) | type MultiLimit struct method Take (line 31) | func (ml *MultiLimit) Take() bool { method TakeContext (line 45) | func (ml *MultiLimit) TakeContext(ctx context.Context) error { method Release (line 59) | func (ml *MultiLimit) Release() { method Close (line 65) | func (ml *MultiLimit) Close() { FILE: internal/limits/limiters/rate.go type Rate (line 39) | type Rate struct method fill (line 62) | func (r Rate) fill(burstSize int, interval time.Duration) { method Take (line 87) | func (r Rate) Take() bool { method TakeContext (line 96) | func (r Rate) TakeContext(ctx context.Context) error { method Release (line 112) | func (r Rate) Release() { method Close (line 115) | func (r Rate) Close() { function NewRate (line 44) | func NewRate(burstSize int, interval time.Duration) Rate { FILE: internal/limits/limits.go type Group (line 42) | type Group struct method Configure (line 57) | func (g *Group) Configure(inlineArgs []string, cfg *config.Map) error { method TakeMsg (line 176) | func (g *Group) TakeMsg(ctx context.Context, addr net.IP, sourceDomain... method TakeDest (line 200) | func (g *Group) TakeDest(ctx context.Context, domain string) error { method ReleaseMsg (line 209) | func (g *Group) ReleaseMsg(addr net.IP, sourceDomain string) { method ReleaseDest (line 219) | func (g *Group) ReleaseDest(domain string) { method Name (line 226) | func (g *Group) Name() string { method InstanceName (line 230) | func (g *Group) InstanceName() string { function New (line 51) | func New(c *container.C, _, instName string) (module.Module, error) { function rateCtor (line 134) | func rateCtor(node config.Node, args []string) (func() limiters.L, error) { function concurrencyCtor (line 163) | func concurrencyCtor(node config.Node, args []string) (func() limiters.L... function init (line 234) | func init() { FILE: internal/modify/dkim/dkim.go constant Day (line 47) | Day = 86400 * time.Second type Modifier (line 98) | type Modifier struct method Name (line 126) | func (m *Modifier) Name() string { method InstanceName (line 130) | func (m *Modifier) InstanceName() string { method Configure (line 134) | func (m *Modifier) Configure(inlineArgs []string, cfg *config.Map) err... method fieldsToSign (line 222) | func (m *Modifier) fieldsToSign(h *textproto.Header) []string { method ModStateForMsg (line 262) | func (m *Modifier) ModStateForMsg(ctx context.Context, msgMeta *module... function New (line 116) | func New(c *container.C, modName, instName string) (module.Module, error) { type state (line 255) | type state struct method RewriteSender (line 270) | func (s *state) RewriteSender(ctx context.Context, mailFrom string) (s... method RewriteRcpt (line 275) | func (s *state) RewriteRcpt(ctx context.Context, rcptTo string) ([]str... method RewriteBody (line 279) | func (s *state) RewriteBody(ctx context.Context, h *textproto.Header, ... method Close (line 370) | func (s *state) Close() error { function init (line 374) | func init() { FILE: internal/modify/dkim/dkim_test.go function newTestModifier (line 40) | func newTestModifier(t *testing.T, dir, keyAlgo string, domains []string... function signTestMsg (line 75) | func signTestMsg(t *testing.T, m *Modifier, envelopeFrom string) (textpr... function verifyTestMsg (line 104) | func verifyTestMsg(t *testing.T, keysPath string, expectedDomains []stri... function TestGenerateSignVerify (line 154) | func TestGenerateSignVerify(t *testing.T) { function TestFieldsToSign (line 226) | func TestFieldsToSign(t *testing.T) { FILE: internal/modify/dkim/keys.go method loadOrGenerateKey (line 36) | func (m *Modifier) loadOrGenerateKey(keyPath, newKeyAlgo string) (pkey c... method generateAndWrite (line 98) | func (m *Modifier) generateAndWrite(keyPath, newKeyAlgo string) (crypto.... function writeDNSRecord (line 157) | func writeDNSRecord(keyPath, dkimAlgoName string, pkey crypto.Signer) (s... FILE: internal/modify/dkim/keys_test.go function TestKeyLoad_new (line 33) | func TestKeyLoad_new(t *testing.T) { constant pkeyEd25519 (line 73) | pkeyEd25519 = `-----BEGIN PRIVATE KEY----- constant pubkeyEd25519 (line 77) | pubkeyEd25519 = `5TPcCxzVByMyRsMFs5Dx23pnxKilI+1UrGg0t+O2oZU=` function TestKeyLoad_existing_pkcs8 (line 79) | func TestKeyLoad_existing_pkcs8(t *testing.T) { constant pkeyRSA (line 103) | pkeyRSA = `-----BEGIN RSA PRIVATE KEY----- function TestKeyLoad_existing_pkcs1 (line 131) | func TestKeyLoad_existing_pkcs1(t *testing.T) { FILE: internal/modify/group.go type Group (line 39) | type Group struct method Configure (line 49) | func (g *Group) Configure(inlineArgs []string, cfg *config.Map) error { method Name (line 62) | func (g *Group) Name() string { method InstanceName (line 66) | func (g *Group) InstanceName() string { method ModStateForMsg (line 70) | func (g *Group) ModStateForMsg(ctx context.Context, msgMeta *module.Ms... type groupState (line 44) | type groupState struct method RewriteSender (line 88) | func (gs groupState) RewriteSender(ctx context.Context, mailFrom strin... method RewriteRcpt (line 99) | func (gs groupState) RewriteRcpt(ctx context.Context, rcptTo string) (... method RewriteBody (line 117) | func (gs groupState) RewriteBody(ctx context.Context, h *textproto.Hea... method Close (line 126) | func (gs groupState) Close() error { function init (line 139) | func init() { FILE: internal/modify/replace_addr.go type replaceAddr (line 41) | type replaceAddr struct method Configure (line 61) | func (r *replaceAddr) Configure(inlineArgs []string, cfg *config.Map) ... method Name (line 65) | func (r *replaceAddr) Name() string { method InstanceName (line 69) | func (r *replaceAddr) InstanceName() string { method ModStateForMsg (line 73) | func (r *replaceAddr) ModStateForMsg(ctx context.Context, msgMeta *mod... method RewriteSender (line 77) | func (r *replaceAddr) RewriteSender(ctx context.Context, mailFrom stri... method RewriteRcpt (line 88) | func (r *replaceAddr) RewriteRcpt(ctx context.Context, rcptTo string) ... method RewriteBody (line 95) | func (r *replaceAddr) RewriteBody(ctx context.Context, h *textproto.He... method Close (line 99) | func (r *replaceAddr) Close() error { method rewrite (line 103) | func (r *replaceAddr) rewrite(ctx context.Context, val string) ([]stri... function NewReplaceAddr (line 50) | func NewReplaceAddr(c *container.C, modName, instName string) (module.Mo... function init (line 153) | func init() { FILE: internal/modify/replace_addr_test.go function testReplaceAddr (line 31) | func testReplaceAddr(t *testing.T, modName string) { function TestReplaceAddr_RewriteSender (line 109) | func TestReplaceAddr_RewriteSender(t *testing.T) { function TestReplaceAddr_RewriteRcpt (line 113) | func TestReplaceAddr_RewriteRcpt(t *testing.T) { FILE: internal/msgpipeline/bench_test.go function BenchmarkMsgPipelineSimple (line 29) | func BenchmarkMsgPipelineSimple(b *testing.B) { function BenchmarkMsgPipelineGlobalChecks (line 44) | func BenchmarkMsgPipelineGlobalChecks(b *testing.B) { function BenchmarkMsgPipelineTargets (line 73) | func BenchmarkMsgPipelineTargets(b *testing.B) { FILE: internal/msgpipeline/bodynonatomic_test.go type multipleErrs (line 30) | type multipleErrs method SetStatus (line 32) | func (m multipleErrs) SetStatus(rcptTo string, err error) { function TestMsgPipeline_BodyNonAtomic (line 36) | func TestMsgPipeline_BodyNonAtomic(t *testing.T) { function TestMsgPipeline_BodyNonAtomic_ModifiedRcpt (line 68) | func TestMsgPipeline_BodyNonAtomic_ModifiedRcpt(t *testing.T) { function TestMsgPipeline_BodyNonAtomic_ExpandAtomic (line 110) | func TestMsgPipeline_BodyNonAtomic_ExpandAtomic(t *testing.T) { FILE: internal/msgpipeline/check_group.go type CheckGroup (line 37) | type CheckGroup struct method Configure (line 42) | func (cg *CheckGroup) Configure(inlineArgs []string, cfg *config.Map) ... method Name (line 55) | func (*CheckGroup) Name() string { method InstanceName (line 59) | func (cg *CheckGroup) InstanceName() string { function init (line 63) | func init() { FILE: internal/msgpipeline/check_runner.go type checkRunner (line 38) | type checkRunner struct method checkStates (line 70) | func (cr *checkRunner) checkStates(ctx context.Context, checks []modul... method runAndMergeResults (line 163) | func (cr *checkRunner) runAndMergeResults(states []module.CheckState, ... method checkConnSender (line 241) | func (cr *checkRunner) checkConnSender(ctx context.Context, checks []m... method checkRcpt (line 250) | func (cr *checkRunner) checkRcpt(ctx context.Context, checks []module.... method checkBody (line 276) | func (cr *checkRunner) checkBody(ctx context.Context, checks []module.... method applyResults (line 293) | func (cr *checkRunner) applyResults(hostname string, header *textproto... method close (line 346) | func (cr *checkRunner) close() { function newCheckRunner (line 59) | func newCheckRunner(msgMeta *module.MsgMetadata, log *log.Logger, r dns.... FILE: internal/msgpipeline/check_test.go function TestMsgPipeline_Checks (line 31) | func TestMsgPipeline_Checks(t *testing.T) { function TestMsgPipeline_AuthResults (line 62) | func TestMsgPipeline_AuthResults(t *testing.T) { function TestMsgPipeline_Headers (line 145) | func TestMsgPipeline_Headers(t *testing.T) { function TestMsgPipeline_Globalcheck_Errors (line 194) | func TestMsgPipeline_Globalcheck_Errors(t *testing.T) { function TestMsgPipeline_SourceCheck_Errors (line 272) | func TestMsgPipeline_SourceCheck_Errors(t *testing.T) { function TestMsgPipeline_RcptCheck_Errors (line 353) | func TestMsgPipeline_RcptCheck_Errors(t *testing.T) { FILE: internal/msgpipeline/config.go type sourceIn (line 35) | type sourceIn struct type msgpipelineCfg (line 40) | type msgpipelineCfg struct function parseMsgPipelineRootCfg (line 49) | func parseMsgPipelineRootCfg(globals map[string]interface{}, nodes []con... function parseMsgPipelineSrcCfg (line 160) | func parseMsgPipelineSrcCfg(globals map[string]interface{}, nodes []conf... function parseMsgPipelineRcptCfg (line 258) | func parseMsgPipelineRcptCfg(globals map[string]interface{}, nodes []con... function parseRejectDirective (line 318) | func parseRejectDirective(node config.Node) (*exterrors.SMTPError, error) { function parseEnhancedCode (line 359) | func parseEnhancedCode(s string) (exterrors.EnhancedCode, error) { function parseChecksGroup (line 376) | func parseChecksGroup(globals map[string]interface{}, node config.Node) ... function parseModifiersGroup (line 385) | func parseModifiersGroup(globals map[string]interface{}, node config.Nod... function validMatchRule (line 395) | func validMatchRule(rule string) bool { FILE: internal/msgpipeline/config_test.go function policyError (line 30) | func policyError(code int) error { function TestMsgPipelineCfg (line 39) | func TestMsgPipelineCfg(t *testing.T) { function TestMsgPipelineCfg_SourceIn (line 249) | func TestMsgPipelineCfg_SourceIn(t *testing.T) { function TestMsgPipelineCfg_DestIn (line 270) | func TestMsgPipelineCfg_DestIn(t *testing.T) { function TestMsgPipelineCfg_GlobalChecks (line 291) | func TestMsgPipelineCfg_GlobalChecks(t *testing.T) { function TestMsgPipelineCfg_GlobalChecksMultiple (line 312) | func TestMsgPipelineCfg_GlobalChecksMultiple(t *testing.T) { function TestMsgPipelineCfg_SourceChecks (line 336) | func TestMsgPipelineCfg_SourceChecks(t *testing.T) { function TestMsgPipelineCfg_SourceChecks_Multiple (line 361) | func TestMsgPipelineCfg_SourceChecks_Multiple(t *testing.T) { function TestMsgPipelineCfg_RcptChecks (line 389) | func TestMsgPipelineCfg_RcptChecks(t *testing.T) { function TestMsgPipelineCfg_RcptChecks_Multiple (line 414) | func TestMsgPipelineCfg_RcptChecks_Multiple(t *testing.T) { FILE: internal/msgpipeline/dmarc_test.go function doTestDelivery (line 41) | func doTestDelivery(t *testing.T, tgt module.DeliveryTarget, from string... function dmarcResult (line 83) | func dmarcResult(t *testing.T, hdr textproto.Header) authres.ResultValue { function TestDMARC (line 105) | func TestDMARC(t *testing.T) { FILE: internal/msgpipeline/metrics.go function init (line 44) | func init() { FILE: internal/msgpipeline/modifier_test.go function TestMsgPipeline_SenderModifier (line 30) | func TestMsgPipeline_SenderModifier(t *testing.T) { function TestMsgPipeline_SenderModifier_Multiple (line 67) | func TestMsgPipeline_SenderModifier_Multiple(t *testing.T) { function TestMsgPipeline_SenderModifier_PreDispatch (line 109) | func TestMsgPipeline_SenderModifier_PreDispatch(t *testing.T) { function TestMsgPipeline_SenderModifier_PostDispatch (line 147) | func TestMsgPipeline_SenderModifier_PostDispatch(t *testing.T) { function TestMsgPipeline_SenderModifier_PerRcpt (line 185) | func TestMsgPipeline_SenderModifier_PerRcpt(t *testing.T) { function TestMsgPipeline_RcptModifier (line 233) | func TestMsgPipeline_RcptModifier(t *testing.T) { function TestMsgPipeline_RcptModifier_OriginalRcpt (line 271) | func TestMsgPipeline_RcptModifier_OriginalRcpt(t *testing.T) { function TestMsgPipeline_RcptModifier_OriginalRcpt_Multiple (line 317) | func TestMsgPipeline_RcptModifier_OriginalRcpt_Multiple(t *testing.T) { function TestMsgPipeline_RcptModifier_Multiple (line 372) | func TestMsgPipeline_RcptModifier_Multiple(t *testing.T) { function TestMsgPipeline_RcptModifier_PreDispatch (line 416) | func TestMsgPipeline_RcptModifier_PreDispatch(t *testing.T) { function TestMsgPipeline_RcptModifier_PostDispatch (line 468) | func TestMsgPipeline_RcptModifier_PostDispatch(t *testing.T) { function TestMsgPipeline_GlobalModifier_Errors (line 513) | func TestMsgPipeline_GlobalModifier_Errors(t *testing.T) { function TestMsgPipeline_SourceModifier_Errors (line 580) | func TestMsgPipeline_SourceModifier_Errors(t *testing.T) { function TestMsgPipeline_RcptModifier_Errors (line 651) | func TestMsgPipeline_RcptModifier_Errors(t *testing.T) { FILE: internal/msgpipeline/module.go type Module (line 29) | type Module struct method Configure (line 42) | func (m *Module) Configure(inlineArgs []string, cfg *config.Map) error { method Name (line 62) | func (m *Module) Name() string { method InstanceName (line 66) | func (m *Module) InstanceName() string { function NewModule (line 35) | func NewModule(c *container.C, modName, instName string) (module.Module,... function init (line 70) | func init() { FILE: internal/msgpipeline/msgpipeline.go type MsgPipeline (line 45) | type MsgPipeline struct method RunEarlyChecks (line 96) | func (d *MsgPipeline) RunEarlyChecks(ctx context.Context, state *modul... method StartDelivery (line 120) | func (d *MsgPipeline) StartDelivery(ctx context.Context, msgMeta *modu... type rcptIn (line 67) | type rcptIn struct type sourceBlock (line 72) | type sourceBlock struct type rcptBlock (line 81) | type rcptBlock struct function New (line 88) | func New(globals map[string]interface{}, cfg []config.Node) (*MsgPipelin... type delivery (line 259) | type delivery struct type msgpipelineDelivery (line 265) | type msgpipelineDelivery struct method start (line 143) | func (dd *msgpipelineDelivery) start(ctx context.Context, msgMeta *mod... method initRunGlobalModifiers (line 182) | func (dd *msgpipelineDelivery) initRunGlobalModifiers(ctx context.Cont... method srcBlockForAddr (line 198) | func (dd *msgpipelineDelivery) srcBlockForAddr(ctx context.Context, ma... method AddRcpt (line 282) | func (dd *msgpipelineDelivery) AddRcpt(ctx context.Context, to string,... method Body (line 382) | func (dd *msgpipelineDelivery) Body(ctx context.Context, header textpr... method BodyNonAtomic (line 455) | func (dd *msgpipelineDelivery) BodyNonAtomic(ctx context.Context, c mo... method Commit (line 508) | func (dd *msgpipelineDelivery) Commit(ctx context.Context) error { method close (line 520) | func (dd *msgpipelineDelivery) close() { method Abort (line 540) | func (dd *msgpipelineDelivery) Abort(ctx context.Context) error { method rcptBlockForAddr (line 554) | func (dd *msgpipelineDelivery) rcptBlockForAddr(ctx context.Context, r... method getRcptModifiers (line 608) | func (dd *msgpipelineDelivery) getRcptModifiers(ctx context.Context, r... method getDelivery (line 629) | func (dd *msgpipelineDelivery) getDelivery(ctx context.Context, tgt mo... type statusCollector (line 442) | type statusCollector struct method SetStatus (line 447) | func (sc statusCollector) SetStatus(rcptTo string, err error) { function Mock (line 652) | func Mock(tgt module.DeliveryTarget, globalChecks []module.Check) *MsgPi... FILE: internal/msgpipeline/msgpipeline_test.go function TestMsgPipeline_AllToTarget (line 34) | func TestMsgPipeline_AllToTarget(t *testing.T) { function TestMsgPipeline_PerSourceDomainSplit (line 58) | func TestMsgPipeline_PerSourceDomainSplit(t *testing.T) { function TestMsgPipeline_SourceIn (line 95) | func TestMsgPipeline_SourceIn(t *testing.T) { function TestMsgPipeline_EmptyMAILFROM (line 149) | func TestMsgPipeline_EmptyMAILFROM(t *testing.T) { function TestMsgPipeline_EmptyMAILFROM_ExplicitDest (line 172) | func TestMsgPipeline_EmptyMAILFROM_ExplicitDest(t *testing.T) { function TestMsgPipeline_PerRcptAddrSplit (line 197) | func TestMsgPipeline_PerRcptAddrSplit(t *testing.T) { function TestMsgPipeline_PerRcptDomainSplit (line 233) | func TestMsgPipeline_PerRcptDomainSplit(t *testing.T) { function TestMsgPipeline_DestInSplit (line 271) | func TestMsgPipeline_DestInSplit(t *testing.T) { function TestMsgPipeline_PerSourceAddrAndDomainSplit (line 323) | func TestMsgPipeline_PerSourceAddrAndDomainSplit(t *testing.T) { function TestMsgPipeline_PerSourceReject (line 360) | func TestMsgPipeline_PerSourceReject(t *testing.T) { function TestMsgPipeline_PerRcptReject (line 394) | func TestMsgPipeline_PerRcptReject(t *testing.T) { function TestMsgPipeline_PostmasterRcpt (line 440) | func TestMsgPipeline_PostmasterRcpt(t *testing.T) { function TestMsgPipeline_PostmasterSrc (line 469) | func TestMsgPipeline_PostmasterSrc(t *testing.T) { function TestMsgPipeline_CaseInsensetiveMatch_Src (line 498) | func TestMsgPipeline_CaseInsensetiveMatch_Src(t *testing.T) { function TestMsgPipeline_CaseInsensetiveMatch_Rcpt (line 540) | func TestMsgPipeline_CaseInsensetiveMatch_Rcpt(t *testing.T) { function TestMsgPipeline_UnicodeNFC_Rcpt (line 576) | func TestMsgPipeline_UnicodeNFC_Rcpt(t *testing.T) { function TestMsgPipeline_MalformedSource (line 607) | func TestMsgPipeline_MalformedSource(t *testing.T) { function TestMsgPipeline_TwoRcptToOneTarget (line 638) | func TestMsgPipeline_TwoRcptToOneTarget(t *testing.T) { function TestMsgPipeline_multi_alias (line 665) | func TestMsgPipeline_multi_alias(t *testing.T) { FILE: internal/msgpipeline/objname.go function objectName (line 29) | func objectName(x interface{}) string { FILE: internal/msgpipeline/regress_test.go function TestMsgPipeline_Issue161 (line 28) | func TestMsgPipeline_Issue161(t *testing.T) { function TestMsgPipeline_Issue161_2 (line 66) | func TestMsgPipeline_Issue161_2(t *testing.T) { function TestMsgPipeline_Issue161_3 (line 102) | func TestMsgPipeline_Issue161_3(t *testing.T) { FILE: internal/proxy_protocol/proxy_protocol.go type ProxyProtocol (line 14) | type ProxyProtocol struct function ProxyProtocolDirective (line 19) | func ProxyProtocolDirective(_ *config.Map, node config.Node) (interface{... function NewListener (line 53) | func NewListener(inner net.Listener, p *ProxyProtocol, logger *log.Logge... FILE: internal/smtpconn/pool/pool.go type Conn (line 29) | type Conn interface type Config (line 35) | type Config struct type slot (line 43) | type slot struct type P (line 49) | type P struct method cleanUpTick (line 75) | func (p *P) cleanUpTick(stop chan struct{}) { method CleanUp (line 90) | func (p *P) CleanUp(ctx context.Context) { method close (line 107) | func (p *P) close(c Conn) { method Get (line 113) | func (p *P) Get(ctx context.Context, key string) (Conn, error) { method Return (line 168) | func (p *P) Return(key string, c Conn) { method Close (line 209) | func (p *P) Close() { function New (line 57) | func New(cfg Config) *P { FILE: internal/smtpconn/smtpconn.go type C (line 52) | type C struct method wrapClientErr (line 102) | func (c *C) wrapClientErr(err error, serverName string) error { method Connect (line 166) | func (c *C) Connect(ctx context.Context, endp config.Endpoint, starttl... method ConnectLMTP (line 184) | func (c *C) ConnectLMTP(ctx context.Context, endp config.Endpoint, sta... method LocalAddr (line 217) | func (c *C) LocalAddr() net.Addr { method RemoteAddr (line 224) | func (c *C) RemoteAddr() net.Addr { method closeClient (line 231) | func (c *C) closeClient(cl *smtp.Client) { method attemptConnect (line 237) | func (c *C) attemptConnect(ctx context.Context, lmtp bool, endp config... method Mail (line 314) | func (c *C) Mail(ctx context.Context, from string, opts smtp.MailOptio... method Rcpts (line 358) | func (c *C) Rcpts() []string { method ServerName (line 362) | func (c *C) ServerName() string { method Client (line 366) | func (c *C) Client() *smtp.Client { method IsLMTP (line 370) | func (c *C) IsLMTP() bool { method Rcpt (line 378) | func (c *C) Rcpt(ctx context.Context, to string, opts smtp.RcptOptions... method smtpToLMTPData (line 448) | func (c *C) smtpToLMTPData(ctx context.Context, hdr textproto.Header, ... method Data (line 470) | func (c *C) Data(ctx context.Context, hdr textproto.Header, body io.Re... method LMTPData (line 497) | func (c *C) LMTPData(ctx context.Context, hdr textproto.Header, body i... method Noop (line 520) | func (c *C) Noop() error { method Close (line 530) | func (c *C) Close() error { method DirectClose (line 559) | func (c *C) DirectClose() error { function New (line 91) | func New() *C { type TLSError (line 205) | type TLSError struct method Error (line 209) | func (err TLSError) Error() string { method Unwrap (line 213) | func (err TLSError) Unwrap() error { type lmtpError (line 411) | type lmtpError method SetStatus (line 413) | func (l lmtpError) SetStatus(rcptTo string, err *smtp.SMTPError) { method singleError (line 417) | func (l lmtpError) singleError() *smtp.SMTPError { method Unwrap (line 434) | func (l lmtpError) Unwrap() error { method Error (line 441) | func (l lmtpError) Error() string { FILE: internal/smtpconn/smtpconn_test.go function TestMain (line 31) | func TestMain(m *testing.M) { FILE: internal/smtpconn/smtputf8_test.go function doTestDelivery (line 34) | func doTestDelivery(t *testing.T, conn *C, from string, to []string, opt... function TestSMTPUTF8 (line 52) | func TestSMTPUTF8(t *testing.T) { FILE: internal/sqlite/is.go function IsSqliteDriver (line 21) | func IsSqliteDriver(name string) bool { FILE: internal/sqlite/modernc_sqlite3.go constant IsAvailable (line 26) | IsAvailable = true constant IsTranspiled (line 27) | IsTranspiled = true function MapDriverName (line 30) | func MapDriverName(n string) string { FILE: internal/sqlite/no_sqlite3.go constant IsAvailable (line 24) | IsAvailable = false constant IsTranspiled (line 25) | IsTranspiled = false function MapDriverName (line 28) | func MapDriverName(n string) string { FILE: internal/sqlite/sqlite3.go constant IsAvailable (line 26) | IsAvailable = true constant IsTranspiled (line 27) | IsTranspiled = false function MapDriverName (line 30) | func MapDriverName(n string) string { FILE: internal/storage/blob/fs/fs.go type FSStore (line 17) | type FSStore struct method Name (line 26) | func (s *FSStore) Name() string { method InstanceName (line 30) | func (s *FSStore) InstanceName() string { method Configure (line 34) | func (s *FSStore) Configure(inlineArgs []string, cfg *config.Map) error { method Open (line 59) | func (s *FSStore) Open(_ context.Context, key string) (io.ReadCloser, ... method Create (line 70) | func (s *FSStore) Create(_ context.Context, key string, blobSize int64... method Delete (line 83) | func (s *FSStore) Delete(_ context.Context, keys []string) error { function New (line 22) | func New(_ *container.C, _, instName string) (module.Module, error) { function init (line 95) | func init() { FILE: internal/storage/blob/fs/fs_test.go function TestFS (line 13) | func TestFS(t *testing.T) { FILE: internal/storage/blob/s3/s3.go constant modName (line 18) | modName = "storage.blob.s3" constant credsTypeFileMinio (line 21) | credsTypeFileMinio = "file_minio" constant credsTypeFileAWS (line 22) | credsTypeFileAWS = "file_aws" constant credsTypeAccessKey (line 23) | credsTypeAccessKey = "access_key" constant credsTypeIAM (line 24) | credsTypeIAM = "iam" constant credsTypeDefault (line 25) | credsTypeDefault = credsTypeAccessKey type Store (line 28) | type Store struct method Configure (line 46) | func (s *Store) Configure(inlineArgs []string, cfg *config.Map) error { method Name (line 102) | func (s *Store) Name() string { method InstanceName (line 106) | func (s *Store) InstanceName() string { method Create (line 145) | func (s *Store) Create(ctx context.Context, key string, blobSize int64... method Open (line 174) | func (s *Store) Open(ctx context.Context, key string) (io.ReadCloser, ... method Delete (line 186) | func (s *Store) Delete(ctx context.Context, keys []string) error { function New (line 39) | func New(c *container.C, modName, instName string) (module.Module, error) { type s3blob (line 110) | type s3blob struct method Sync (line 116) | func (b *s3blob) Sync() error { method Write (line 132) | func (b *s3blob) Write(p []byte) (n int, err error) { method Close (line 136) | func (b *s3blob) Close() error { function init (line 197) | func init() { FILE: internal/storage/blob/s3/s3_test.go function TestFS (line 14) | func TestFS(t *testing.T) { FILE: internal/storage/blob/test_blob.go type testBack (line 17) | type testBack struct function TestStore (line 22) | func TestStore(t *testing.T, newStore func() module.BlobStore, cleanStor... FILE: internal/storage/blob/test_blob_nosqlite.go function TestStore (line 12) | func TestStore(t *testing.T, newStore func() module.BlobStore, cleanStor... FILE: internal/storage/imapsql/bench_test.go function init (line 37) | func init() { function createTestDB (line 43) | func createTestDB(tb testing.TB, compAlgo string) *Storage { function BenchmarkStorage_Delivery (line 59) | func BenchmarkStorage_Delivery(b *testing.B) { function BenchmarkStorage_DeliveryLZ4 (line 70) | func BenchmarkStorage_DeliveryLZ4(b *testing.B) { function BenchmarkStorage_DeliveryZstd (line 81) | func BenchmarkStorage_DeliveryZstd(b *testing.B) { FILE: internal/storage/imapsql/delivery.go type addedRcpt (line 37) | type addedRcpt struct type delivery (line 40) | type delivery struct method String (line 49) | func (d *delivery) String() string { method AddRcpt (line 63) | func (d *delivery) AddRcpt(ctx context.Context, rcptTo string, _ smtp.... method Body (line 104) | func (d *delivery) Body(ctx context.Context, header textproto.Header, ... method Abort (line 150) | func (d *delivery) Abort(ctx context.Context) error { method Commit (line 156) | func (d *delivery) Commit(ctx context.Context) error { function userDoesNotExist (line 53) | func userDoesNotExist(actual error) error { method StartDelivery (line 162) | func (store *Storage) StartDelivery(ctx context.Context, msgMeta *module... FILE: internal/storage/imapsql/external_blob_store.go type ExtBlob (line 11) | type ExtBlob struct method Sync (line 15) | func (e ExtBlob) Sync() error { method Write (line 19) | func (e ExtBlob) Write(p []byte) (n int, err error) { type WriteExtBlob (line 23) | type WriteExtBlob struct method Read (line 27) | func (w WriteExtBlob) Read(p []byte) (n int, err error) { type ExtBlobStore (line 31) | type ExtBlobStore struct method Create (line 35) | func (e ExtBlobStore) Create(key string, objSize int64) (imapsql.ExtSt... method Open (line 47) | func (e ExtBlobStore) Open(key string) (imapsql.ExtStoreObj, error) { method Delete (line 59) | func (e ExtBlobStore) Delete(keys []string) error { FILE: internal/storage/imapsql/imapsql.go constant modName (line 61) | modName = "storage.imapsql" type Storage (line 63) | type Storage struct method Name (line 89) | func (store *Storage) Name() string { method InstanceName (line 93) | func (store *Storage) InstanceName() string { method Configure (line 106) | func (store *Storage) Configure(inlineArgs []string, cfg *config.Map) ... method Start (line 293) | func (store *Storage) Start() error { method EnableUpdatePipe (line 303) | func (store *Storage) EnableUpdatePipe(mode updatepipe.BackendMode) er... method I18NLevel (line 392) | func (store *Storage) I18NLevel() int { method IMAPExtensions (line 396) | func (store *Storage) IMAPExtensions() []string { method CreateMessageLimit (line 400) | func (store *Storage) CreateMessageLimit() *uint32 { method GetOrCreateIMAPAcct (line 404) | func (store *Storage) GetOrCreateIMAPAcct(username string) (backend.Us... method Lookup (line 413) | func (store *Storage) Lookup(ctx context.Context, key string) (string,... method Stop (line 433) | func (store *Storage) Stop() error { method Login (line 454) | func (store *Storage) Login(_ *imap.ConnInfo, usenrame, password strin... method SupportedThreadAlgorithms (line 458) | func (store *Storage) SupportedThreadAlgorithms() []sortthread.ThreadA... function New (line 97) | func New(c *container.C, modName, instName string) (module.Module, error) { function init (line 462) | func init() { FILE: internal/storage/imapsql/maddyctl.go method ListIMAPAccts (line 28) | func (store *Storage) ListIMAPAccts() ([]string, error) { method CreateIMAPAcct (line 32) | func (store *Storage) CreateIMAPAcct(accountName string) error { method DeleteIMAPAcct (line 36) | func (store *Storage) DeleteIMAPAcct(accountName string) error { method GetIMAPAcct (line 40) | func (store *Storage) GetIMAPAcct(accountName string) (backend.User, err... FILE: internal/table/chain.go type Chain (line 31) | type Chain struct method Configure (line 46) | func (s *Chain) Configure(inlineArgs []string, cfg *config.Map) error { method Name (line 74) | func (s *Chain) Name() string { method InstanceName (line 78) | func (s *Chain) InstanceName() string { method Lookup (line 82) | func (s *Chain) Lookup(ctx context.Context, key string) (string, bool,... method LookupMulti (line 94) | func (s *Chain) LookupMulti(ctx context.Context, key string) ([]string... function NewChain (line 39) | func NewChain(_ *container.C, modName, instName string) (module.Module, ... function init (line 131) | func init() { FILE: internal/table/email_localpart.go type EmailLocalpart (line 31) | type EmailLocalpart struct method Configure (line 45) | func (s *EmailLocalpart) Configure(inlineArgs []string, cfg *config.Ma... method Name (line 49) | func (s *EmailLocalpart) Name() string { method InstanceName (line 53) | func (s *EmailLocalpart) InstanceName() string { method Lookup (line 57) | func (s *EmailLocalpart) Lookup(ctx context.Context, key string) (stri... function NewEmailLocalpart (line 37) | func NewEmailLocalpart(_ *container.C, modName, instName string) (module... function init (line 69) | func init() { FILE: internal/table/email_with_domain.go type EmailWithDomain (line 33) | type EmailWithDomain struct method Configure (line 48) | func (s *EmailWithDomain) Configure(inlineArgs []string, cfg *config.M... method Name (line 63) | func (s *EmailWithDomain) Name() string { method InstanceName (line 67) | func (s *EmailWithDomain) InstanceName() string { method Lookup (line 71) | func (s *EmailWithDomain) Lookup(ctx context.Context, key string) (str... method LookupMulti (line 81) | func (s *EmailWithDomain) LookupMulti(ctx context.Context, key string)... function NewEmailWithDomain (line 40) | func NewEmailWithDomain(c *container.C, modName, instName string) (modul... function init (line 90) | func init() { FILE: internal/table/file.go constant FileModName (line 38) | FileModName = "table.file" type File (line 40) | type File struct method Name (line 66) | func (f *File) Name() string { method InstanceName (line 70) | func (f *File) InstanceName() string { method Configure (line 74) | func (f *File) Configure(inlineArgs []string, cfg *config.Map) error { method Start (line 107) | func (f *File) Start() error { method Reload (line 112) | func (f *File) Reload() error { method Stop (line 117) | func (f *File) Stop() error { method reloader (line 125) | func (f *File) reloader() { method reload (line 151) | func (f *File) reload() { method Lookup (line 238) | func (f *File) Lookup(_ context.Context, val string) (string, bool, er... method LookupMulti (line 254) | func (f *File) LookupMulti(_ context.Context, val string) ([]string, e... function NewFile (line 54) | func NewFile(c *container.C, modName, instName string) (module.Module, e... function readFile (line 196) | func readFile(path string, out map[string][]string) error { function init (line 262) | func init() { FILE: internal/table/file_test.go function TestReadFile (line 34) | func TestReadFile(t *testing.T) { function TestFileReload (line 98) | func TestFileReload(t *testing.T) { function TestFileReload_Broken (line 162) | func TestFileReload_Broken(t *testing.T) { function TestFileReload_Removed (line 226) | func TestFileReload_Removed(t *testing.T) { function init (line 278) | func init() { FILE: internal/table/identity.go type Identity (line 30) | type Identity struct method Configure (line 42) | func (s *Identity) Configure(inlineArgs []string, cfg *config.Map) err... method Name (line 46) | func (s *Identity) Name() string { method InstanceName (line 50) | func (s *Identity) InstanceName() string { method Lookup (line 54) | func (s *Identity) Lookup(_ context.Context, key string) (string, bool... function NewIdentity (line 35) | func NewIdentity(_ *container.C, modName, instName string) (module.Modul... function init (line 58) | func init() { FILE: internal/table/regexp.go type Regexp (line 33) | type Regexp struct method Configure (line 50) | func (r *Regexp) Configure(inlineArgs []string, cfg *config.Map) error { method Name (line 88) | func (r *Regexp) Name() string { method InstanceName (line 92) | func (r *Regexp) InstanceName() string { method LookupMulti (line 96) | func (r *Regexp) LookupMulti(_ context.Context, key string) ([]string,... method Lookup (line 113) | func (r *Regexp) Lookup(ctx context.Context, key string) (string, bool... function NewRegexp (line 43) | func NewRegexp(_ *container.C, modName, instName string) (module.Module,... function init (line 125) | func init() { FILE: internal/table/sql_query.go type SQL (line 37) | type SQL struct method Name (line 59) | func (s *SQL) Name() string { method InstanceName (line 63) | func (s *SQL) InstanceName() string { method Configure (line 67) | func (s *SQL) Configure(inlineArgs []string, cfg *config.Map) error { method Start (line 145) | func (s *SQL) Start() error { method Stop (line 149) | func (s *SQL) Stop() error { method Lookup (line 156) | func (s *SQL) Lookup(ctx context.Context, val string) (string, bool, e... method LookupMulti (line 175) | func (s *SQL) LookupMulti(ctx context.Context, val string) ([]string, ... method Keys (line 202) | func (s *SQL) Keys() ([]string, error) { method RemoveKey (line 228) | func (s *SQL) RemoveKey(k string) error { method SetKey (line 245) | func (s *SQL) SetKey(k, v string) error { function NewSQL (line 52) | func NewSQL(_ *container.C, modName, instName string) (module.Module, er... function init (line 269) | func init() { FILE: internal/table/sql_query_test.go function TestSQL (line 35) | func TestSQL(t *testing.T) { FILE: internal/table/sql_table.go type SQLTable (line 32) | type SQLTable struct method Name (line 51) | func (s *SQLTable) Name() string { method InstanceName (line 55) | func (s *SQLTable) InstanceName() string { method Configure (line 59) | func (s *SQLTable) Configure(inlineArgs []string, cfg *config.Map) err... method Start (line 149) | func (s *SQLTable) Start() error { return s.wrapped.Start() } method Stop (line 151) | func (s *SQLTable) Stop() error { method Lookup (line 155) | func (s *SQLTable) Lookup(ctx context.Context, val string) (string, bo... method LookupMulti (line 159) | func (s *SQLTable) LookupMulti(ctx context.Context, val string) ([]str... method Keys (line 163) | func (s *SQLTable) Keys() ([]string, error) { method RemoveKey (line 167) | func (s *SQLTable) RemoveKey(k string) error { method SetKey (line 171) | func (s *SQLTable) SetKey(k, v string) error { function NewSQLTable (line 39) | func NewSQLTable(_ *container.C, modName, instName string) (module.Modul... function init (line 175) | func init() { FILE: internal/table/static.go type Static (line 30) | type Static struct method Configure (line 45) | func (s *Static) Configure(inlineArgs []string, cfg *config.Map) error { method Name (line 57) | func (s *Static) Name() string { method InstanceName (line 61) | func (s *Static) InstanceName() string { method Lookup (line 65) | func (s *Static) Lookup(ctx context.Context, key string) (string, bool... method LookupMulti (line 73) | func (s *Static) LookupMulti(ctx context.Context, key string) ([]strin... function NewStatic (line 37) | func NewStatic(_ *container.C, modName, instName string) (module.Module,... function init (line 77) | func init() { FILE: internal/target/delivery.go function DeliveryLogger (line 26) | func DeliveryLogger(parent *log.Logger, msgMeta *module.MsgMetadata) *lo... FILE: internal/target/queue/metrics.go function init (line 33) | func init() { FILE: internal/target/queue/queue.go type partialError (line 93) | type partialError struct method SetStatus (line 104) | func (pe *partialError) SetStatus(rcptTo string, err error) { method Error (line 114) | func (pe *partialError) Error() string { type Queue (line 122) | type Queue struct method Configure (line 203) | func (q *Queue) Configure(inlineArgs []string, cfg *config.Map) error { method Start (line 252) | func (q *Queue) Start() error { method start (line 256) | func (q *Queue) start(maxParallelism int) error { method EarlyStop (line 269) | func (q *Queue) EarlyStop() error { method Stop (line 277) | func (q *Queue) Stop() error { method discardBroken (line 288) | func (q *Queue) discardBroken(id string) { method dispatch (line 296) | func (q *Queue) dispatch(ctx context.Context, value TimeSlot[queueSlot... method tryDelivery (line 386) | func (q *Queue) tryDelivery(ctx context.Context, meta *QueueMetadata, ... method deliver (line 473) | func (q *Queue) deliver(ctx context.Context, meta *QueueMetadata, head... method StartDelivery (line 642) | func (q *Queue) StartDelivery(ctx context.Context, msgMeta *module.Msg... method removeFromDisk (line 653) | func (q *Queue) removeFromDisk(msgMeta *module.MsgMetadata) { method readDiskQueue (line 678) | func (q *Queue) readDiskQueue() error { method storeNewMessage (line 755) | func (q *Queue) storeNewMessage(meta *QueueMetadata, header textproto.... method updateMetadataOnDisk (line 821) | func (q *Queue) updateMetadataOnDisk(meta *QueueMetadata) error { method readMessageMeta (line 864) | func (q *Queue) readMessageMeta(id string) (*QueueMetadata, error) { method tryRemoveDanglingFile (line 897) | func (q *Queue) tryRemoveDanglingFile(name string) { method openMessage (line 905) | func (q *Queue) openMessage(id string) (*QueueMetadata, textproto.Head... method InstanceName (line 940) | func (q *Queue) InstanceName() string { method Name (line 944) | func (q *Queue) Name() string { method emitDSN (line 948) | func (q *Queue) emitDSN(meta *QueueMetadata, header textproto.Header, ... type QueueMetadata (line 159) | type QueueMetadata struct type queueSlot (line 182) | type queueSlot struct function New (line 192) | func New(c *container.C, modName, instName string) (module.Module, error) { function toSMTPErr (line 346) | func toSMTPErr(err error) *smtp.SMTPError { type queueDelivery (line 587) | type queueDelivery struct method AddRcpt (line 595) | func (qd *queueDelivery) AddRcpt(ctx context.Context, rcptTo string, _... method Body (line 600) | func (qd *queueDelivery) Body(ctx context.Context, header textproto.He... method Abort (line 615) | func (qd *queueDelivery) Abort(ctx context.Context) error { method Commit (line 624) | func (qd *queueDelivery) Commit(ctx context.Context) error { type BufferedReadCloser (line 892) | type BufferedReadCloser struct function init (line 1057) | func init() { FILE: internal/target/queue/queue_test.go function newTestQueue (line 50) | func newTestQueue(t *testing.T, target module.DeliveryTarget) *Queue { function cleanQueue (line 54) | func cleanQueue(t *testing.T, q *Queue) { function newTestQueueDir (line 61) | func newTestQueueDir(t *testing.T, target module.DeliveryTarget, dir str... type unreliableTarget (line 86) | type unreliableTarget struct method StartDelivery (line 164) | func (ut *unreliableTarget) StartDelivery(ctx context.Context, msgMeta... type unreliableTargetDelivery (line 101) | type unreliableTargetDelivery struct method AddRcpt (line 110) | func (utd *unreliableTargetDelivery) AddRcpt(ctx context.Context, rcpt... method Body (line 122) | func (utd *unreliableTargetDelivery) Body(ctx context.Context, header ... method Abort (line 148) | func (utd *unreliableTargetDelivery) Abort(ctx context.Context) error { method Commit (line 156) | func (utd *unreliableTargetDelivery) Commit(ctx context.Context) error { type unreliableTargetDeliveryPartial (line 106) | type unreliableTargetDeliveryPartial struct method BodyNonAtomic (line 137) | func (utd *unreliableTargetDeliveryPartial) BodyNonAtomic(ctx context.... function readMsgChanTimeout (line 185) | func readMsgChanTimeout(t *testing.T, ch <-chan testutils.Msg, timeout t... function checkQueueDir (line 197) | func checkQueueDir(t *testing.T, q *Queue, expectedIDs []string) { function TestQueueDelivery (line 239) | func TestQueueDelivery(t *testing.T) { function TestQueueDelivery_PermanentFail_NonPartial (line 258) | func TestQueueDelivery_PermanentFail_NonPartial(t *testing.T) { function TestQueueDelivery_PermanentFail_Partial (line 280) | func TestQueueDelivery_PermanentFail_Partial(t *testing.T) { function TestQueueDelivery_TemporaryFail (line 305) | func TestQueueDelivery_TemporaryFail(t *testing.T) { function TestQueueDelivery_TemporaryFail_Partial (line 332) | func TestQueueDelivery_TemporaryFail_Partial(t *testing.T) { function TestQueueDelivery_MultipleAttempts (line 365) | func TestQueueDelivery_MultipleAttempts(t *testing.T) { function TestQueueDelivery_PermanentRcptReject (line 405) | func TestQueueDelivery_PermanentRcptReject(t *testing.T) { function TestQueueDelivery_TemporaryRcptReject (line 430) | func TestQueueDelivery_TemporaryRcptReject(t *testing.T) { function TestQueueDelivery_SerializationRoundtrip (line 464) | func TestQueueDelivery_SerializationRoundtrip(t *testing.T) { function TestQueueDelivery_DeserlizationCleanUp (line 511) | func TestQueueDelivery_DeserlizationCleanUp(t *testing.T) { function TestQueueDelivery_AbortIfNoRecipients (line 566) | func TestQueueDelivery_AbortIfNoRecipients(t *testing.T) { function TestQueueDelivery_AbortNoDangling (line 586) | func TestQueueDelivery_AbortNoDangling(t *testing.T) { function TestQueueDSN (line 630) | func TestQueueDSN(t *testing.T) { function TestQueueDSN_FromEmptyAddr (line 670) | func TestQueueDSN_FromEmptyAddr(t *testing.T) { function TestQueueDSN_NoDSNforDSN (line 708) | func TestQueueDSN_NoDSNforDSN(t *testing.T) { function TestQueueDSN_RcptRewrite (line 754) | func TestQueueDSN_RcptRewrite(t *testing.T) { function init (line 828) | func init() { FILE: internal/target/queue/timewheel.go type TimeSlot (line 29) | type TimeSlot struct type TimeWheel (line 34) | type TimeWheel struct function NewTimeWheel (line 48) | func NewTimeWheel[Value any](dispatch func(context.Context, TimeSlot[Val... method Add (line 63) | func (tw *TimeWheel[Value]) Add(target time.Time, value Value) { method Close (line 76) | func (tw *TimeWheel[Value]) Close() { method tick (line 94) | func (tw *TimeWheel[Value]) tick(ctx context.Context) { FILE: internal/target/queue/timewheel_test.go function TestTimeWheelAdd (line 27) | func TestTimeWheelAdd(t *testing.T) { function TestTimeWheelAdd_Ordering (line 45) | func TestTimeWheelAdd_Ordering(t *testing.T) { function TestTimeWheelAdd_Restart (line 68) | func TestTimeWheelAdd_Restart(t *testing.T) { function TestTimeWheelAdd_MissingGotoBug (line 91) | func TestTimeWheelAdd_MissingGotoBug(t *testing.T) { function TestTimeWheelAdd_EmptyUpdWait (line 110) | func TestTimeWheelAdd_EmptyUpdWait(t *testing.T) { FILE: internal/target/received.go function SanitizeForHeader (line 33) | func SanitizeForHeader(raw string) string { function GenerateReceived (line 37) | func GenerateReceived(ctx context.Context, msgMeta *module.MsgMetadata, ... FILE: internal/target/remote/connect.go type mxConn (line 37) | type mxConn struct method Usable (line 58) | func (c *mxConn) Usable() bool { method LastUseAt (line 65) | func (c *mxConn) LastUseAt() time.Time { method Close (line 69) | func (c *mxConn) Close() error { function isVerifyError (line 73) | func isVerifyError(err error) bool { method connect (line 85) | func (rd *remoteDelivery) connect(ctx context.Context, conn mxConn, host... method attemptMX (line 159) | func (rd *remoteDelivery) attemptMX(ctx context.Context, conn *mxConn, r... method closeConn (line 209) | func (rd *remoteDelivery) closeConn(c *mxConn) { method connectionForDomain (line 215) | func (rd *remoteDelivery) connectionForDomain(ctx context.Context, domai... method newConn (line 296) | func (rd *remoteDelivery) newConn(ctx context.Context, domain string) (*... method lookupMX (line 369) | func (rd *remoteDelivery) lookupMX(ctx context.Context, domain string) (... FILE: internal/target/remote/dane.go function verifyDANE (line 40) | func verifyDANE(recs []dns.TLSA, connState tls.ConnectionState) (overrid... FILE: internal/target/remote/dane_delivery_test.go function targetWithExtResolver (line 36) | func targetWithExtResolver(t *testing.T, zones map[string]mockdns.Zone) ... function tlsaRecord (line 61) | func tlsaRecord(name string, usage, matchType, selector uint8, cert stri... function TestRemoteDelivery_DANE_Ok (line 80) | func TestRemoteDelivery_DANE_Ok(t *testing.T) { function TestRemoteDelivery_DANE_CNAMEd_1 (line 118) | func TestRemoteDelivery_DANE_CNAMEd_1(t *testing.T) { function TestRemoteDelivery_DANE_CNAMEd_2 (line 159) | func TestRemoteDelivery_DANE_CNAMEd_2(t *testing.T) { function TestRemoteDelivery_DANE_InsecureCNAMEDest (line 201) | func TestRemoteDelivery_DANE_InsecureCNAMEDest(t *testing.T) { function TestRemoteDelivery_DANE_NonAD_TLSA_Ignore (line 250) | func TestRemoteDelivery_DANE_NonAD_TLSA_Ignore(t *testing.T) { function TestRemoteDelivery_DANE_NonADIgnore_CNAME (line 281) | func TestRemoteDelivery_DANE_NonADIgnore_CNAME(t *testing.T) { function TestRemoteDelivery_DANE_SkipAUnauth (line 316) | func TestRemoteDelivery_DANE_SkipAUnauth(t *testing.T) { function TestRemoteDelivery_DANE_Mismatch (line 348) | func TestRemoteDelivery_DANE_Mismatch(t *testing.T) { function TestRemoteDelivery_DANE_NoRecord (line 386) | func TestRemoteDelivery_DANE_NoRecord(t *testing.T) { function TestRemoteDelivery_DANE_LookupErr (line 413) | func TestRemoteDelivery_DANE_LookupErr(t *testing.T) { function TestRemoteDelivery_DANE_NoTLS (line 448) | func TestRemoteDelivery_DANE_NoTLS(t *testing.T) { function TestRemoteDelivery_DANE_TLSError (line 484) | func TestRemoteDelivery_DANE_TLSError(t *testing.T) { FILE: internal/target/remote/dane_test.go function parsePEMCert (line 90) | func parsePEMCert(blob string) *x509.Certificate { function singleTlsaRecord (line 99) | func singleTlsaRecord(usage, matchType, selector uint8, cert string) dns... function keySHA256 (line 114) | func keySHA256(blob string) string { function TestVerifyDANE (line 120) | func TestVerifyDANE(t *testing.T) { FILE: internal/target/remote/debugflags.go function init (line 29) | func init() { FILE: internal/target/remote/metrics.go function init (line 43) | func init() { FILE: internal/target/remote/mxauth_test.go function TestRemoteDelivery_AuthMX_MTASTS (line 39) | func TestRemoteDelivery_AuthMX_MTASTS(t *testing.T) { function TestRemoteDelivery_MTASTS_SkipNonMatching (line 78) | func TestRemoteDelivery_MTASTS_SkipNonMatching(t *testing.T) { function TestRemoteDelivery_AuthMX_MTASTS_Fail (line 133) | func TestRemoteDelivery_AuthMX_MTASTS_Fail(t *testing.T) { function TestRemoteDelivery_AuthMX_MTASTS_NoTLS (line 179) | func TestRemoteDelivery_AuthMX_MTASTS_NoTLS(t *testing.T) { function TestRemoteDelivery_AuthMX_MTASTS_RequirePKIX (line 224) | func TestRemoteDelivery_AuthMX_MTASTS_RequirePKIX(t *testing.T) { function TestRemoteDelivery_AuthMX_MTASTS_NoPolicy (line 272) | func TestRemoteDelivery_AuthMX_MTASTS_NoPolicy(t *testing.T) { function TestRemoteDelivery_AuthMX_DNSSEC (line 322) | func TestRemoteDelivery_AuthMX_DNSSEC(t *testing.T) { function TestRemoteDelivery_AuthMX_DNSSEC_Fail (line 369) | func TestRemoteDelivery_AuthMX_DNSSEC_Fail(t *testing.T) { function TestRemoteDelivery_REQUIRETLS (line 423) | func TestRemoteDelivery_REQUIRETLS(t *testing.T) { function TestRemoteDelivery_REQUIRETLS_Fail (line 468) | func TestRemoteDelivery_REQUIRETLS_Fail(t *testing.T) { function TestRemoteDelivery_REQUIRETLS_Relaxed (line 517) | func TestRemoteDelivery_REQUIRETLS_Relaxed(t *testing.T) { function TestRemoteDelivery_REQUIRETLS_Relaxed_NoMXAuth (line 563) | func TestRemoteDelivery_REQUIRETLS_Relaxed_NoMXAuth(t *testing.T) { function TestRemoteDelivery_REQUIRETLS_Relaxed_NoTLS (line 608) | func TestRemoteDelivery_REQUIRETLS_Relaxed_NoTLS(t *testing.T) { function TestRemoteDelivery_REQUIRETLS_Relaxed_TLSFail (line 658) | func TestRemoteDelivery_REQUIRETLS_Relaxed_TLSFail(t *testing.T) { FILE: internal/target/remote/policy_group.go type PolicyGroup (line 38) | type PolicyGroup struct method Configure (line 44) | func (pg *PolicyGroup) Configure(inlineArgs []string, cfg *config.Map)... method Name (line 92) | func (*PolicyGroup) Name() string { method InstanceName (line 96) | func (pg *PolicyGroup) InstanceName() string { function init (line 100) | func init() { FILE: internal/target/remote/remote.go function moduleError (line 58) | func moduleError(err error) error { type Target (line 64) | type Target struct method Configure (line 102) | func (rt *Target) Configure(inlineArgs []string, cfg *config.Map) error { method Start (line 190) | func (rt *Target) Start() error { method Stop (line 194) | func (rt *Target) Stop() error { method Name (line 200) | func (rt *Target) Name() string { method InstanceName (line 204) | func (rt *Target) InstanceName() string { method StartDelivery (line 220) | func (rt *Target) StartDelivery(ctx context.Context, msgMeta *module.M... function New (line 92) | func New(c *container.C, modName, instName string) (module.Module, error) { type remoteDelivery (line 208) | type remoteDelivery struct method AddRcpt (line 280) | func (rd *remoteDelivery) AddRcpt(ctx context.Context, to string, opts... method Body (line 379) | func (rd *remoteDelivery) Body(ctx context.Context, header textproto.H... method BodyNonAtomic (line 398) | func (rd *remoteDelivery) BodyNonAtomic(ctx context.Context, c module.... method Abort (line 445) | func (rd *remoteDelivery) Abort(ctx context.Context) error { method Commit (line 449) | func (rd *remoteDelivery) Commit(ctx context.Context) error { method Close (line 455) | func (rd *remoteDelivery) Close() error { type multipleErrs (line 331) | type multipleErrs struct method Error (line 336) | func (m *multipleErrs) Error() string { method Fields (line 342) | func (m *multipleErrs) Fields() map[string]interface{} { method SetStatus (line 373) | func (m *multipleErrs) SetStatus(rcptTo string, err error) { function init (line 493) | func init() { FILE: internal/target/remote/remote_test.go function testTarget (line 52) | func testTarget(t *testing.T, zones map[string]mockdns.Zone, extResolver... function testSTSPolicy (line 77) | func testSTSPolicy(t *testing.T, zones map[string]mockdns.Zone, mtastsGe... function testDANEPolicy (line 103) | func testDANEPolicy(t *testing.T, extR *dns.ExtResolver) *danePolicy { function TestRemoteDelivery (line 121) | func TestRemoteDelivery(t *testing.T) { function TestRemoteDelivery_NoMXFallback (line 145) | func TestRemoteDelivery_NoMXFallback(t *testing.T) { function TestRemoteDelivery_EmptySender (line 176) | func TestRemoteDelivery_EmptySender(t *testing.T) { function TestRemoteDelivery_IPLiteral (line 200) | func TestRemoteDelivery_IPLiteral(t *testing.T) { function TestRemoteDelivery_FallbackMX (line 230) | func TestRemoteDelivery_FallbackMX(t *testing.T) { function TestRemoteDelivery_BodyNonAtomic (line 251) | func TestRemoteDelivery_BodyNonAtomic(t *testing.T) { function TestRemoteDelivery_Abort (line 283) | func TestRemoteDelivery_Abort(t *testing.T) { function TestRemoteDelivery_CommitWithoutBody (line 317) | func TestRemoteDelivery_CommitWithoutBody(t *testing.T) { function TestRemoteDelivery_MAILFROMErr (line 352) | func TestRemoteDelivery_MAILFROMErr(t *testing.T) { function TestRemoteDelivery_NoMX (line 391) | func TestRemoteDelivery_NoMX(t *testing.T) { function TestRemoteDelivery_NullMX (line 422) | func TestRemoteDelivery_NullMX(t *testing.T) { function TestRemoteDelivery_Quarantined (line 455) | func TestRemoteDelivery_Quarantined(t *testing.T) { function TestRemoteDelivery_MAILFROMErr_Repeated (line 501) | func TestRemoteDelivery_MAILFROMErr_Repeated(t *testing.T) { function TestRemoteDelivery_RcptErr (line 543) | func TestRemoteDelivery_RcptErr(t *testing.T) { function TestRemoteDelivery_DownMX (line 600) | func TestRemoteDelivery_DownMX(t *testing.T) { function TestRemoteDelivery_AllMXDown (line 630) | func TestRemoteDelivery_AllMXDown(t *testing.T) { function TestRemoteDelivery_Split (line 657) | func TestRemoteDelivery_Split(t *testing.T) { function TestRemoteDelivery_Split_Fail (line 694) | func TestRemoteDelivery_Split_Fail(t *testing.T) { function TestRemoteDelivery_BodyErr (line 764) | func TestRemoteDelivery_BodyErr(t *testing.T) { function TestRemoteDelivery_Split_BodyErr (line 813) | func TestRemoteDelivery_Split_BodyErr(t *testing.T) { function TestRemoteDelivery_Split_BodyErr_NonAtomic (line 875) | func TestRemoteDelivery_Split_BodyErr_NonAtomic(t *testing.T) { function TestRemoteDelivery_TLSErrFallback (line 949) | func TestRemoteDelivery_TLSErrFallback(t *testing.T) { function TestRemoteDelivery_RequireTLS_Missing (line 980) | func TestRemoteDelivery_RequireTLS_Missing(t *testing.T) { function TestRemoteDelivery_RequireTLS_Present (line 1008) | func TestRemoteDelivery_RequireTLS_Present(t *testing.T) { function TestRemoteDelivery_RequireTLS_NoErrFallback (line 1035) | func TestRemoteDelivery_RequireTLS_NoErrFallback(t *testing.T) { function TestRemoteDelivery_TLS_FallbackNoVerify (line 1070) | func TestRemoteDelivery_TLS_FallbackNoVerify(t *testing.T) { function TestRemoteDelivery_TLS_FallbackPlaintext (line 1103) | func TestRemoteDelivery_TLS_FallbackPlaintext(t *testing.T) { function TestMain (line 1134) | func TestMain(m *testing.M) { function TestRemoteDelivery_ConnReuse (line 1146) | func TestRemoteDelivery_ConnReuse(t *testing.T) { FILE: internal/target/remote/security.go type mtastsPolicy (line 42) | type mtastsPolicy struct method Name (line 64) | func (c *mtastsPolicy) Name() string { method InstanceName (line 68) | func (c *mtastsPolicy) InstanceName() string { method Weight (line 72) | func (c *mtastsPolicy) Weight() int { method Configure (line 76) | func (c *mtastsPolicy) Configure(inlineArgs []string, cfg *config.Map)... method Start (line 104) | func (c *mtastsPolicy) Start() error { method StartUpdater (line 113) | func (c *mtastsPolicy) StartUpdater() { method Stop (line 118) | func (c *mtastsPolicy) Stop() error { method updater (line 127) | func (c *mtastsPolicy) updater() { method StartDelivery (line 161) | func (c *mtastsPolicy) StartDelivery(msgMeta *module.MsgMetadata) modu... type mtastsDelivery (line 49) | type mtastsDelivery struct method PrepareDomain (line 168) | func (c *mtastsDelivery) PrepareDomain(ctx context.Context, domain str... method PrepareConn (line 175) | func (c *mtastsDelivery) PrepareConn(ctx context.Context, mx string) {} method CheckMX (line 177) | func (c *mtastsDelivery) CheckMX(ctx context.Context, mxLevel module.M... method CheckConn (line 199) | func (c *mtastsDelivery) CheckConn(ctx context.Context, mxLevel module... method Reset (line 234) | func (c *mtastsDelivery) Reset(msgMeta *module.MsgMetadata) { function NewMTASTSPolicy (line 57) | func NewMTASTSPolicy(c *container.C, modName, instName string) (module.M... type stsPreloadPolicy (line 242) | type stsPreloadPolicy struct method Name (line 254) | func (c *stsPreloadPolicy) Name() string { method InstanceName (line 258) | func (c *stsPreloadPolicy) InstanceName() string { method Weight (line 262) | func (c *stsPreloadPolicy) Weight() int { method Configure (line 266) | func (c *stsPreloadPolicy) Configure(inlineArgs []string, cfg *config.... method StartDelivery (line 286) | func (p *stsPreloadPolicy) StartDelivery(*module.MsgMetadata) module.D... function NewSTSPreload (line 247) | func NewSTSPreload(c *container.C, modName, instName string) (module.Mod... type preloadDelivery (line 282) | type preloadDelivery struct method Reset (line 290) | func (p *preloadDelivery) Reset(*module.MsgMetadata) ... method PrepareDomain (line 291) | func (p *preloadDelivery) PrepareDomain(ctx context.Context, domain st... method PrepareConn (line 292) | func (p *preloadDelivery) PrepareConn(ctx context.Context, mx string) ... method CheckMX (line 293) | func (p *preloadDelivery) CheckMX(ctx context.Context, mxLevel module.... method CheckConn (line 297) | func (p *preloadDelivery) CheckConn(ctx context.Context, mxLevel modul... type dnssecPolicy (line 301) | type dnssecPolicy struct method Name (line 311) | func (dnssecPolicy) Name() string { method InstanceName (line 315) | func (c dnssecPolicy) InstanceName() string { method Weight (line 319) | func (dnssecPolicy) Weight() int { method Configure (line 323) | func (dnssecPolicy) Configure(inlineArgs []string, cfg *config.Map) er... method StartDelivery (line 328) | func (dnssecPolicy) StartDelivery(*module.MsgMetadata) module.Delivery... method Reset (line 332) | func (dnssecPolicy) Reset(*module.MsgMetadata) {} method PrepareDomain (line 333) | func (dnssecPolicy) PrepareDomain(ctx context.Context, domain string) {} method PrepareConn (line 334) | func (dnssecPolicy) PrepareConn(ctx context.Context, mx string) {} method CheckMX (line 336) | func (dnssecPolicy) CheckMX(ctx context.Context, mxLevel module.MXLeve... method CheckConn (line 343) | func (dnssecPolicy) CheckConn(ctx context.Context, mxLevel module.MXLe... function NewDNSSECPolicy (line 305) | func NewDNSSECPolicy(_ *container.C, _, instName string) (module.Module,... type danePolicy (line 348) | type danePolicy struct method Name (line 366) | func (c *danePolicy) Name() string { method InstanceName (line 370) | func (c *danePolicy) InstanceName() string { method Weight (line 374) | func (c *danePolicy) Weight() int { method Configure (line 378) | func (c *danePolicy) Configure(inlineArgs []string, cfg *config.Map) e... method StartDelivery (line 391) | func (c *danePolicy) StartDelivery(*module.MsgMetadata) module.Deliver... type daneDelivery (line 353) | type daneDelivery struct method PrepareDomain (line 395) | func (c *daneDelivery) PrepareDomain(ctx context.Context, domain strin... method discoverTLSA (line 397) | func (c *daneDelivery) discoverTLSA(ctx context.Context, mx string) ([... method PrepareConn (line 466) | func (c *daneDelivery) PrepareConn(ctx context.Context, mx string) { method CheckMX (line 486) | func (c *daneDelivery) CheckMX(ctx context.Context, mxLevel module.MXL... method CheckConn (line 490) | func (c *daneDelivery) CheckConn(ctx context.Context, mxLevel module.M... method Reset (line 524) | func (c *daneDelivery) Reset(*module.MsgMetadata) {} function NewDANEPolicy (line 359) | func NewDANEPolicy(c *container.C, modName, instName string) (module.Mod... type localPolicy (line 527) | type localPolicy struct method Name (line 540) | func (c *localPolicy) Name() string { method InstanceName (line 544) | func (c *localPolicy) InstanceName() string { method Weight (line 548) | func (c *localPolicy) Weight() int { method Configure (line 552) | func (c *localPolicy) Configure(inlineArgs []string, cfg *config.Map) ... method StartDelivery (line 587) | func (l *localPolicy) StartDelivery(msgMeta *module.MsgMetadata) modul... method Reset (line 591) | func (l *localPolicy) Reset(*module.MsgMetadata) ... method PrepareDomain (line 592) | func (l *localPolicy) PrepareDomain(ctx context.Context, domain string... method PrepareConn (line 593) | func (l *localPolicy) PrepareConn(ctx context.Context, mx string) ... method CheckMX (line 595) | func (l *localPolicy) CheckMX(ctx context.Context, mxLevel module.MXLe... method CheckConn (line 612) | func (l *localPolicy) CheckConn(ctx context.Context, mxLevel module.MX... function NewLocalPolicy (line 534) | func NewLocalPolicy(_ *container.C, _, instName string) (module.Module, ... function init (line 627) | func init() { FILE: internal/target/skeleton.go constant modName (line 37) | modName = "target.target_name" type Target (line 39) | type Target struct method Init (line 54) | func (t *Target) Init(cfg *config.Map) error { method Name (line 68) | func (t *Target) Name() string { method InstanceName (line 72) | func (t *Target) InstanceName() string { method Close (line 78) | func (t *Target) Close() error { method Start (line 93) | func (t *Target) Start(ctx context.Context, msgMeta *module.MsgMetadat... function New (line 44) | func New(_, instName string, _, inlineArgs []string) (module.Module, err... type delivery (line 82) | type delivery struct method AddRcpt (line 102) | func (d *delivery) AddRcpt(ctx context.Context, rcptTo string) error { method Body (line 107) | func (d *delivery) Body(ctx context.Context, header textproto.Header, ... method Abort (line 121) | func (d *delivery) Abort(ctx context.Context) error { method Commit (line 125) | func (d *delivery) Commit(ctx context.Context) error { function init (line 129) | func init() { FILE: internal/target/smtp/sasl.go function saslAuthDirective (line 34) | func saslAuthDirective(_ *config.Map, node config.Node) (interface{}, er... FILE: internal/target/smtp/sasl_test.go function testSaslFactory (line 31) | func testSaslFactory(t *testing.T, args ...string) saslClientFactory { function TestSASL_Plain (line 42) | func TestSASL_Plain(t *testing.T) { function TestSASL_Plain_AuthFail (line 72) | func TestSASL_Plain_AuthFail(t *testing.T) { function TestSASL_Login_Directive (line 104) | func TestSASL_Login_Directive(t *testing.T) { function TestSASL_Forward (line 121) | func TestSASL_Forward(t *testing.T) { function TestSASL_Forward_NoCreds (line 156) | func TestSASL_Forward_NoCreds(t *testing.T) { FILE: internal/target/smtp/smtp_downstream.go type Downstream (line 52) | type Downstream struct method moduleError (line 70) | func (u *Downstream) moduleError(err error) error { method Configure (line 89) | func (u *Downstream) Configure(inlineArgs []string, cfg *config.Map) e... method Name (line 162) | func (u *Downstream) Name() string { method InstanceName (line 166) | func (u *Downstream) InstanceName() string { method StartDelivery (line 186) | func (u *Downstream) StartDelivery(ctx context.Context, msgMeta *modul... function New (line 80) | func New(c *container.C, modName, instName string) (module.Module, error) { type delivery (line 170) | type delivery struct method closeConn (line 213) | func (d *delivery) closeConn(c *smtpconn.C) { method connect (line 219) | func (d *delivery) connect(ctx context.Context) error { method AddRcpt (line 279) | func (d *delivery) AddRcpt(ctx context.Context, rcptTo string, opts sm... method Body (line 289) | func (d *delivery) Body(ctx context.Context, header textproto.Header, ... method Abort (line 340) | func (d *delivery) Abort(ctx context.Context) error { method Commit (line 344) | func (d *delivery) Commit(ctx context.Context) error { type lmtpDelivery (line 182) | type lmtpDelivery struct method BodyNonAtomic (line 303) | func (d *lmtpDelivery) BodyNonAtomic(ctx context.Context, sc module.St... function init (line 348) | func init() { FILE: internal/target/smtp/smtp_downstream_test.go function TestDownstreamDelivery (line 38) | func TestDownstreamDelivery(t *testing.T) { function TestDownstreamDelivery_LMTP (line 71) | func TestDownstreamDelivery_LMTP(t *testing.T) { function TestDownstreamDelivery_LMTP_ErrorCoerce (line 124) | func TestDownstreamDelivery_LMTP_ErrorCoerce(t *testing.T) { type statusCollector (line 160) | type statusCollector method SetStatus (line 162) | func (sc *statusCollector) SetStatus(rcptTo string, err error) { function TestDownstreamDelivery_Fallback (line 166) | func TestDownstreamDelivery_Fallback(t *testing.T) { function TestDownstreamDelivery_MAILErr (line 194) | func TestDownstreamDelivery_MAILErr(t *testing.T) { function TestDownstreamDelivery_StartTLS (line 223) | func TestDownstreamDelivery_StartTLS(t *testing.T) { function TestDownstreamDelivery_StartTLS_NoFallback (line 253) | func TestDownstreamDelivery_StartTLS_NoFallback(t *testing.T) { function TestMain (line 279) | func TestMain(m *testing.M) { FILE: internal/target/smtp/smtputf8_test.go function TestDownstreamDelivery_EHLO_ALabel (line 30) | func TestDownstreamDelivery_EHLO_ALabel(t *testing.T) { FILE: internal/testutils/bench_delivery.go constant MessageBodySize (line 39) | MessageBodySize = 100 * 1024 constant ExtraMessageHeaderFields (line 40) | ExtraMessageHeaderFields = 10 constant ExtraMessageHeaderFieldSize (line 41) | ExtraMessageHeaderFieldSize = 50 constant testHeaderString (line 44) | testHeaderString = "Content-Type: multipart/mixed; boundary=message-boun... constant testAltHeaderString (line 55) | testAltHeaderString = "Content-Type: multipart/alternative; boundary=b2\... constant testTextHeaderString (line 58) | testTextHeaderString = "Content-Disposition: inline\r\n" + constant testTextBodyString (line 62) | testTextBodyString = "What's your name?" constant testTextString (line 64) | testTextString = testTextHeaderString + testTextBodyString constant testHTMLHeaderString (line 66) | testHTMLHeaderString = "Content-Disposition: inline\r\n" + constant testHTMLBodyString (line 70) | testHTMLBodyString = "
What's your name?
" constant testHTMLString (line 72) | testHTMLString = testHTMLHeaderString + testHTMLBodyString constant testAttachmentHeaderString (line 74) | testAttachmentHeaderString = "Content-Disposition: attachment; filename=... constant testAttachmentBodyString (line 78) | testAttachmentBodyString = "My name is Mitsuha." constant testAttachmentString (line 80) | testAttachmentString = testAttachmentHeaderString + testAttachmentBodySt... constant testBodyString (line 82) | testBodyString = "--message-boundary\r\n" + function RandomMsg (line 95) | func RandomMsg(b *testing.B) (module.MsgMetadata, textproto.Header, buff... function BenchDelivery (line 112) | func BenchDelivery(b *testing.B, target module.DeliveryTarget, sender st... FILE: internal/testutils/buffer.go function BodyFromStr (line 32) | func BodyFromStr(t *testing.T, literal string) (textproto.Header, buffer... type errorReader (line 48) | type errorReader struct method Read (line 53) | func (r *errorReader) Read(b []byte) (int, error) { type FailingBuffer (line 61) | type FailingBuffer struct method Open (line 68) | func (fb FailingBuffer) Open() (io.ReadCloser, error) { method Len (line 78) | func (fb FailingBuffer) Len() int { method Remove (line 82) | func (fb FailingBuffer) Remove() error { FILE: internal/testutils/check.go type Check (line 32) | type Check struct method CheckStateForMsg (line 50) | func (c *Check) CheckStateForMsg(ctx context.Context, msgMeta *module.... method Configure (line 59) | func (c *Check) Configure([]string, *config.Map) error { method Name (line 63) | func (c *Check) Name() string { method InstanceName (line 67) | func (c *Check) InstanceName() string { method CheckConnection (line 74) | func (c *Check) CheckConnection(ctx context.Context, state *module.Con... type checkState (line 78) | type checkState struct method CheckConnection (line 83) | func (cs *checkState) CheckConnection(ctx context.Context) module.Chec... method CheckSender (line 88) | func (cs *checkState) CheckSender(ctx context.Context, from string) mo... method CheckRcpt (line 93) | func (cs *checkState) CheckRcpt(ctx context.Context, to string) module... method CheckBody (line 98) | func (cs *checkState) CheckBody(ctx context.Context, header textproto.... method Close (line 103) | func (cs *checkState) Close() error { function init (line 108) | func init() { FILE: internal/testutils/filesystem.go function Dir (line 28) | func Dir(t *testing.T) string { FILE: internal/testutils/logger.go function Logger (line 36) | func Logger(t *testing.T, name string) *log.Logger { FILE: internal/testutils/modifier.go type Modifier (line 32) | type Modifier struct method Configure (line 47) | func (m Modifier) Configure([]string, *config.Map) error { method Name (line 51) | func (m Modifier) Name() string { method InstanceName (line 55) | func (m Modifier) InstanceName() string { method ModStateForMsg (line 63) | func (m Modifier) ModStateForMsg(ctx context.Context, msgMeta *module.... type modifierState (line 59) | type modifierState struct method RewriteSender (line 72) | func (ms modifierState) RewriteSender(ctx context.Context, mailFrom st... method RewriteRcpt (line 87) | func (ms modifierState) RewriteRcpt(ctx context.Context, rcptTo string... method RewriteBody (line 103) | func (ms modifierState) RewriteBody(ctx context.Context, h *textproto.... method Close (line 114) | func (ms modifierState) Close() error { function init (line 119) | func init() { FILE: internal/testutils/multitable.go type MultiTable (line 23) | type MultiTable struct method LookupMulti (line 28) | func (m MultiTable) LookupMulti(_ context.Context, a string) ([]string... FILE: internal/testutils/smtp_server.go type SMTPMessage (line 39) | type SMTPMessage struct type SMTPBackend (line 49) | type SMTPBackend struct method NewSession (line 64) | func (be *SMTPBackend) NewSession(conn *smtp.Conn) (smtp.Session, erro... method ConnectionCount (line 77) | func (be *SMTPBackend) ConnectionCount() int { method CheckMsg (line 81) | func (be *SMTPBackend) CheckMsg(t *testing.T, indx int, from string, r... type session (line 105) | type session struct method AuthMechanisms (line 113) | func (s *session) AuthMechanisms() []string { method Auth (line 117) | func (s *session) Auth(mech string) (sasl.Server, error) { method Reset (line 131) | func (s *session) Reset() { method Logout (line 135) | func (s *session) Logout() error { method Mail (line 140) | func (s *session) Mail(from string, opts *smtp.MailOptions) error { method Rcpt (line 153) | func (s *session) Rcpt(to string, _ *smtp.RcptOptions) error { method Data (line 162) | func (s *session) Data(r io.Reader) error { method LMTPData (line 179) | func (s *session) LMTPData(r io.Reader, status smtp.StatusCollector) e... type SMTPServerConfigureFunc (line 201) | type SMTPServerConfigureFunc function SMTPServer (line 203) | func SMTPServer(t *testing.T, addr string, fn ...SMTPServerConfigureFunc... constant testServerCert (line 239) | testServerCert = `-----BEGIN CERTIFICATE----- constant testServerKey (line 254) | testServerKey = `-----BEGIN PRIVATE KEY----- function SMTPServerSTARTTLS (line 276) | func SMTPServerSTARTTLS(t *testing.T, addr string, fn ...SMTPServerConfi... function SMTPServerTLS (line 331) | func SMTPServerTLS(t *testing.T, addr string, fn ...SMTPServerConfigureF... type smtpBackendConnCounter (line 384) | type smtpBackendConnCounter interface function CheckSMTPConnLeak (line 388) | func CheckSMTPConnLeak(t *testing.T, srv *smtp.Server) { function WaitForConnsClose (line 408) | func WaitForConnsClose(t *testing.T, srv *smtp.Server) { function FailOnConn (line 415) | func FailOnConn(t *testing.T, addr string) net.Listener { function CheckSMTPErr (line 433) | func CheckSMTPErr(t *testing.T, err error, code int, enchCode exterrors.... FILE: internal/testutils/table.go type Table (line 23) | type Table struct method Lookup (line 28) | func (m Table) Lookup(_ context.Context, a string) (string, bool, erro... FILE: internal/testutils/target.go type Msg (line 39) | type Msg struct type Target (line 47) | type Target struct method Configure (line 65) | func (dt *Target) Configure([]string, *config.Map) error { method InstanceName (line 69) | func (dt *Target) InstanceName() string { method Name (line 76) | func (dt *Target) Name() string { method StartDelivery (line 89) | func (dt *Target) StartDelivery(ctx context.Context, msgMeta *module.M... type testTargetDelivery (line 80) | type testTargetDelivery struct method AddRcpt (line 104) | func (dtd *testTargetDelivery) AddRcpt(ctx context.Context, to string,... method Body (line 146) | func (dtd *testTargetDelivery) Body(ctx context.Context, header textpr... method Abort (line 176) | func (dtd *testTargetDelivery) Abort(ctx context.Context) error { method Commit (line 180) | func (dtd *testTargetDelivery) Commit(ctx context.Context) error { type testTargetDeliveryPartial (line 85) | type testTargetDeliveryPartial struct method BodyNonAtomic (line 115) | func (dtd *testTargetDeliveryPartial) BodyNonAtomic(ctx context.Contex... function DoTestDelivery (line 191) | func DoTestDelivery(t *testing.T, tgt module.DeliveryTarget, from string... function DoTestDeliveryMeta (line 198) | func DoTestDeliveryMeta(t *testing.T, tgt module.DeliveryTarget, from st... function DoTestDeliveryNonAtomic (line 208) | func DoTestDeliveryNonAtomic(t *testing.T, c module.StatusCollector, tgt... constant DeliveryData (line 254) | DeliveryData = "A: 1\r\n" + function DoTestDeliveryErr (line 259) | func DoTestDeliveryErr(t *testing.T, tgt module.DeliveryTarget, from str... function DoTestDeliveryErrMeta (line 263) | func DoTestDeliveryErrMeta(t *testing.T, tgt module.DeliveryTarget, from... function CheckTestMessage (line 311) | func CheckTestMessage(t *testing.T, tgt *Target, indx int, sender string... function CheckMsg (line 323) | func CheckMsg(t *testing.T, msg *Msg, sender string, rcpt []string) { function CheckMsgID (line 332) | func CheckMsgID(t *testing.T, msg *Msg, sender string, rcpt []string, id... FILE: internal/tls/acme/acme.go constant modName (line 19) | modName = "tls.loader.acme" type Loader (line 21) | type Loader struct method Configure (line 40) | func (l *Loader) Configure(inlineArgs []string, cfg *config.Map) error { method ConfigureTLS (line 130) | func (l *Loader) ConfigureTLS(c *tls.Config) error { method Start (line 135) | func (l *Loader) Start() error { method Stop (line 146) | func (l *Loader) Stop() error { method Name (line 152) | func (l *Loader) Name() string { method InstanceName (line 156) | func (l *Loader) InstanceName() string { function New (line 33) | func New(c *container.C, _, instName string) (module.Module, error) { function init (line 160) | func init() { function init (line 166) | func init() { FILE: internal/tls/file.go type FileLoader (line 36) | type FileLoader struct method Configure (line 57) | func (f *FileLoader) Configure(inlineArgs []string, cfg *config.Map) e... method Start (line 89) | func (f *FileLoader) Start() error { method Reload (line 95) | func (f *FileLoader) Reload() error { method Stop (line 100) | func (f *FileLoader) Stop() error { method Name (line 106) | func (f *FileLoader) Name() string { method InstanceName (line 110) | func (f *FileLoader) InstanceName() string { method reloadTicker (line 114) | func (f *FileLoader) reloadTicker() { method loadCerts (line 128) | func (f *FileLoader) loadCerts() error { method ConfigureTLS (line 157) | func (f *FileLoader) ConfigureTLS(c *tls.Config) error { function NewFileLoader (line 49) | func NewFileLoader(c *container.C, modName, instName string) (module.Mod... function init (line 166) | func init() { FILE: internal/tls/self_signed.go type SelfSignedLoader (line 38) | type SelfSignedLoader struct method Configure (line 51) | func (f *SelfSignedLoader) Configure(inlineArgs []string, cfg *config.... method Name (line 98) | func (f *SelfSignedLoader) Name() string { method InstanceName (line 102) | func (f *SelfSignedLoader) InstanceName() string { method ConfigureTLS (line 106) | func (f *SelfSignedLoader) ConfigureTLS(c *tls.Config) error { function NewSelfSignedLoader (line 45) | func NewSelfSignedLoader(_ *container.C, _, instName string) (module.Mod... function init (line 111) | func init() { FILE: internal/updatepipe/backend.go type BackendMode (line 21) | type BackendMode constant ModeReplicate (line 26) | ModeReplicate BackendMode = iota constant ModePush (line 32) | ModePush BackendMode = iota type Backend (line 38) | type Backend interface FILE: internal/updatepipe/pubsub/pq.go type Msg (line 12) | type Msg struct type PqPubSub (line 17) | type PqPubSub struct method Close (line 52) | func (l *PqPubSub) Close() error { method eventHandler (line 62) | func (l *PqPubSub) eventHandler(ev pq.ListenerEventType, err error) { method Subscribe (line 75) | func (l *PqPubSub) Subscribe(_ context.Context, key string) error { method Unsubscribe (line 79) | func (l *PqPubSub) Unsubscribe(_ context.Context, key string) error { method Publish (line 83) | func (l *PqPubSub) Publish(key, payload string) error { method Listener (line 88) | func (l *PqPubSub) Listener() chan Msg { function NewPQ (line 26) | func NewPQ(dsn string) (*PqPubSub, error) { FILE: internal/updatepipe/pubsub/pubsub.go type PubSub (line 5) | type PubSub interface FILE: internal/updatepipe/pubsub_pipe.go type PubSubPipe (line 14) | type PubSubPipe struct method Listen (line 19) | func (p *PubSubPipe) Listen(upds chan<- mess.Update) error { method InitPush (line 36) | func (p *PubSubPipe) InitPush() error { method myID (line 40) | func (p *PubSubPipe) myID() string { method channel (line 44) | func (p *PubSubPipe) channel(key interface{}) (string, error) { method Subscribe (line 57) | func (p *PubSubPipe) Subscribe(key interface{}) { method Unsubscribe (line 71) | func (p *PubSubPipe) Unsubscribe(key interface{}) { method Push (line 85) | func (p *PubSubPipe) Push(upd mess.Update) error { method Close (line 99) | func (p *PubSubPipe) Close() error { FILE: internal/updatepipe/serialize.go function unescapeName (line 31) | func unescapeName(s string) string { function escapeName (line 35) | func escapeName(s string) string { function parseUpdate (line 39) | func parseUpdate(s string) (id string, upd *mess.Update, err error) { function formatUpdate (line 60) | func formatUpdate(myID string, upd mess.Update) (string, error) { FILE: internal/updatepipe/unix_pipe.go type UnixSockPipe (line 46) | type UnixSockPipe struct method myID (line 56) | func (usp *UnixSockPipe) myID() string { method readUpdates (line 60) | func (usp *UnixSockPipe) readUpdates(conn net.Conn, updCh chan<- mess.... method Listen (line 77) | func (usp *UnixSockPipe) Listen(upd chan<- mess.Update) error { method InitPush (line 95) | func (usp *UnixSockPipe) InitPush() error { method Push (line 105) | func (usp *UnixSockPipe) Push(upd mess.Update) error { method Close (line 121) | func (usp *UnixSockPipe) Close() error { FILE: internal/updatepipe/update_pipe.go type P (line 37) | type P interface FILE: maddy.go function BuildInfo (line 89) | func BuildInfo() string { function init (line 106) | func init() { function Run (line 183) | func Run(c *cli.Context) error { function VerifyConfig (line 232) | func VerifyConfig(c *cli.Context) error { function initDebug (line 247) | func initDebug(c *cli.Context) { function InitDirs (line 270) | func InitDirs(c *container.C) error { function ensureDirectoryWritable (line 313) | func ensureDirectoryWritable(path string) error { function ReadGlobals (line 328) | func ReadGlobals(c *container.C, cfg []config.Node) (map[string]interfac... function ReadConfig (line 348) | func ReadConfig(path string) ([]config.Node, error) { function moduleConfigure (line 362) | func moduleConfigure(configPath string) (*container.C, error) { function moduleStart (line 398) | func moduleStart(c *container.C) error { function moduleStop (line 402) | func moduleStop(c *container.C, earlyStop bool) error { function moduleMain (line 412) | func moduleMain(configPath string) error { function moduleReload (line 461) | func moduleReload(oldContainer *container.C, configPath string, asyncSto... function RegisterModules (line 530) | func RegisterModules(c *container.C, globals map[string]interface{}, nod... FILE: maddy_debug.go function init (line 28) | func init() { FILE: signal.go function handleSignals (line 39) | func handleSignals() (reload bool) { FILE: signal_nonposix.go function handleSignals (line 32) | func handleSignals() os.Signal { FILE: systemd.go type SDStatus (line 36) | type SDStatus constant SDReady (line 39) | SDReady = "READY=1" constant SDReloading (line 40) | SDReloading = "RELOADING=1" constant SDStopping (line 41) | SDStopping = "STOPPING=1" function sdNotifySock (line 46) | func sdNotifySock() (*net.UnixConn, error) { function setScmPassCred (line 61) | func setScmPassCred(sock *net.UnixConn) error { function systemdStatus (line 79) | func systemdStatus(status SDStatus, desc string) { function systemdStatusErr (line 110) | func systemdStatusErr(reportedErr error) { FILE: systemd_nonlinux.go type SDStatus (line 24) | type SDStatus constant SDReady (line 27) | SDReady = "READY=1" constant SDReloading (line 28) | SDReloading = "RELOADING=1" constant SDStopping (line 29) | SDStopping = "STOPPING=1" function systemdStatus (line 32) | func systemdStatus(SDStatus, string) {} function systemdStatusErr (line 34) | func systemdStatusErr(error) {} FILE: tests/basic_test.go function TestBasic (line 30) | func TestBasic(tt *testing.T) { FILE: tests/conn.go type Conn (line 35) | type Conn struct method AllowIOErr (line 51) | func (c *Conn) AllowIOErr(ok bool) { method Write (line 56) | func (c *Conn) Write(s string) { method Writeln (line 76) | func (c *Conn) Writeln(s string) { method Readln (line 82) | func (c *Conn) Readln() (string, error) { method Expect (line 114) | func (c *Conn) Expect(line string) { method ExpectPattern (line 130) | func (c *Conn) ExpectPattern(pat string) string { method fatal (line 149) | func (c *Conn) fatal(f string, args ...interface{}) { method log (line 155) | func (c *Conn) log(direction rune, f string, args ...interface{}) { method TLS (line 189) | func (c *Conn) TLS() { method SMTPPlainAuth (line 204) | func (c *Conn) SMTPPlainAuth(username, password string, expectOk bool) { method SMTPNegotation (line 218) | func (c *Conn) SMTPNegotation(ourName string, requireExts, blacklistEx... method Close (line 281) | func (c *Conn) Close() error { method MustClose (line 285) | func (c *Conn) MustClose() { method Rebind (line 292) | func (c *Conn) Rebind(subtest *T) *Conn { FILE: tests/cover_test.go function TestMain (line 51) | func TestMain(m *testing.M) { FILE: tests/dovecot_sasl_test.go function init (line 44) | func init() { constant dovecotConf (line 48) | dovecotConf = ` constant dovecotConf24 (line 99) | dovecotConf24 = `dovecot_config_version = 2.4.0 constant dovecotPasswd (line 139) | dovecotPasswd = `tester:{plain}123456:1000:1000::/home/user` function isDovecot24 (line 141) | func isDovecot24(t *testing.T, dovecotExec string) bool { function runDovecot (line 157) | func runDovecot(t *testing.T) (string, *exec.Cmd) { function cleanDovecot (line 235) | func cleanDovecot(t *testing.T, tempDir string, cmd *exec.Cmd) { function TestDovecotSASLClient (line 244) | func TestDovecotSASLClient(tt *testing.T) { FILE: tests/dovecot_sasld_test.go function init (line 42) | func init() { constant chasquidConf (line 46) | chasquidConf = `smtp_address: "127.0.0.2:44444" constant testServerCert (line 59) | testServerCert = `-----BEGIN CERTIFICATE----- constant testServerKey (line 74) | testServerKey = `-----BEGIN PRIVATE KEY----- function runChasquid (line 91) | func runChasquid(t *testing.T, authClientPath string) (string, *exec.Cmd) { function cleanChasquid (line 158) | func cleanChasquid(t *testing.T, tempDir string, cmd *exec.Cmd) { function TestSASLServerWithChasquid (line 163) | func TestSASLServerWithChasquid(tt *testing.T) { FILE: tests/ghsa_5835_4gvc_32pc_test.go type searchEntry (line 15) | type searchEntry struct type MockLDAP (line 20) | type MockLDAP struct method HandleBind (line 26) | func (ml *MockLDAP) HandleBind(w *gldap.ResponseWriter, r *gldap.Reque... method HandleSearch (line 46) | func (ml *MockLDAP) HandleSearch(w *gldap.ResponseWriter, r *gldap.Req... method Run (line 68) | func (ml *MockLDAP) Run(address string) { function TestLDAPInjectionFilter (line 95) | func TestLDAPInjectionFilter(tt *testing.T) { FILE: tests/gocovcat.go function handleErr (line 36) | func handleErr(err error) { function main (line 43) | func main() { FILE: tests/imap_test.go function TestIMAPEndpointAuthMap (line 12) | func TestIMAPEndpointAuthMap(tt *testing.T) { function TestIMAPEndpointStorageMap (line 52) | func TestIMAPEndpointStorageMap(tt *testing.T) { FILE: tests/imapsql_test.go function TestImapsqlDelivery (line 32) | func TestImapsqlDelivery(tt *testing.T) { function TestImapsqlDeliveryMap (line 116) | func TestImapsqlDeliveryMap(tt *testing.T) { function TestImapsqlAuthMap (line 188) | func TestImapsqlAuthMap(tt *testing.T) { FILE: tests/issue327_test.go function TestIssue327 (line 33) | func TestIssue327(tt *testing.T) { FILE: tests/limits_test.go function TestConcurrencyLimit (line 30) | func TestConcurrencyLimit(tt *testing.T) { function TestPerIPConcurrency (line 66) | func TestPerIPConcurrency(tt *testing.T) { FILE: tests/lmtp_test.go function TestLMTPServer_Is_Actually_LMTP (line 33) | func TestLMTPServer_Is_Actually_LMTP(tt *testing.T) { function TestLMTPClient_Is_Actually_LMTP (line 88) | func TestLMTPClient_Is_Actually_LMTP(tt *testing.T) { function TestLMTPClient_Issue308 (line 133) | func TestLMTPClient_Issue308(tt *testing.T) { FILE: tests/modules_test.go function TestConfigCycle (line 29) | func TestConfigCycle(tt *testing.T) { FILE: tests/mta_test.go function TestMTA_Outbound (line 34) | func TestMTA_Outbound(tt *testing.T) { function TestIssue321 (line 84) | func TestIssue321(tt *testing.T) { FILE: tests/multiple_domains_test.go function TestMultipleDomains_SeparateNamespace (line 31) | func TestMultipleDomains_SeparateNamespace(tt *testing.T) { function TestMultipleDomains_SharedCredentials_DistinctMailboxes (line 128) | func TestMultipleDomains_SharedCredentials_DistinctMailboxes(tt *testing... function TestMultipleDomains_SharedCredentials_SharedMailboxes (line 225) | func TestMultipleDomains_SharedCredentials_SharedMailboxes(tt *testing.T) { FILE: tests/reload_non_unix.go method reloadConfig (line 23) | func (t *T) reloadConfig() { FILE: tests/reload_test.go function TestSmtpPipelineSwitch (line 33) | func TestSmtpPipelineSwitch(tt *testing.T) { function TestImapStorageSwitch (line 98) | func TestImapStorageSwitch(tt *testing.T) { FILE: tests/reload_unix.go method reloadConfig (line 28) | func (t *T) reloadConfig() { FILE: tests/replace_addr_test.go function TestReplaceAddr_Rcpt (line 30) | func TestReplaceAddr_Rcpt(tt *testing.T) { function TestReplaceAddr_Sender (line 134) | func TestReplaceAddr_Sender(tt *testing.T) { FILE: tests/smtp_autobuffer_test.go function TestSMTPEndpoint_LargeMessage (line 32) | func TestSMTPEndpoint_LargeMessage(tt *testing.T) { function TestSMTPEndpoint_FileBuffer (line 123) | func TestSMTPEndpoint_FileBuffer(tt *testing.T) { function TestSMTPEndpoint_Autobuffer (line 213) | func TestSMTPEndpoint_Autobuffer(tt *testing.T) { FILE: tests/smtp_test.go function TestCheckRequireTLS (line 36) | func TestCheckRequireTLS(tt *testing.T) { function TestProxyProtocolTrustedSource (line 72) | func TestProxyProtocolTrustedSource(tt *testing.T) { function TestProxyProtocolUntrustedSource (line 116) | func TestProxyProtocolUntrustedSource(tt *testing.T) { function TestCheckSPF (line 160) | func TestCheckSPF(tt *testing.T) { function TestSPF_DMARCDefer (line 253) | func TestSPF_DMARCDefer(tt *testing.T) { function TestDNSBLConfig (line 348) | func TestDNSBLConfig(tt *testing.T) { function TestDNSBLConfig2 (line 397) | func TestDNSBLConfig2(tt *testing.T) { function TestCheckAuthorizeSender (line 446) | func TestCheckAuthorizeSender(tt *testing.T) { function TestCheckCommand (line 517) | func TestCheckCommand(tt *testing.T) { function TestHeaderSizeConstraint (line 631) | func TestHeaderSizeConstraint(tt *testing.T) { FILE: tests/stress_test.go function floodSmtp (line 32) | func floodSmtp(c *tests.Conn, commands, expectedPatterns []string, itera... function TestSMTPFlood_FullMsg_NoLimits_1Conn (line 43) | func TestSMTPFlood_FullMsg_NoLimits_1Conn(tt *testing.T) { function TestSMTPFlood_FullMsg_NoLimits_10Conns (line 81) | func TestSMTPFlood_FullMsg_NoLimits_10Conns(tt *testing.T) { function TestSMTPFlood_EnvelopeAbort_NoLimits_10Conns (line 129) | func TestSMTPFlood_EnvelopeAbort_NoLimits_10Conns(tt *testing.T) { function TestSMTPFlood_EnvelopeAbort_Ratelimited (line 169) | func TestSMTPFlood_EnvelopeAbort_Ratelimited(tt *testing.T) { function TestSMTPFlood_FullMsg_Ratelimited_PerSource (line 230) | func TestSMTPFlood_FullMsg_Ratelimited_PerSource(tt *testing.T) { function TestSMTPFlood_EnvelopeAbort_Ratelimited_PerIP (line 329) | func TestSMTPFlood_EnvelopeAbort_Ratelimited_PerIP(tt *testing.T) { FILE: tests/t.go type T (line 53) | type T struct method Config (line 80) | func (t *T) Config(cfg string) { method DNS (line 104) | func (t *T) DNS(zones map[string]mockdns.Zone) { method Port (line 146) | func (t *T) Port(name string) uint16 { method Env (line 158) | func (t *T) Env(kv string) { method ensureCanRun (line 162) | func (t *T) ensureCanRun() { method buildCmd (line 210) | func (t *T) buildCmd(additionalArgs ...string) *exec.Cmd { method MustRunCLIGroup (line 253) | func (t *T) MustRunCLIGroup(args ...[]string) { method MustRunCLI (line 272) | func (t *T) MustRunCLI(args ...string) string { method RunCLI (line 280) | func (t *T) RunCLI(args ...string) (string, error) { method Run (line 306) | func (t *T) Run(waitListeners int) { method StateDir (line 359) | func (t *T) StateDir() string { method RuntimeDir (line 363) | func (t *T) RuntimeDir() string { method killServer (line 367) | func (t *T) killServer() { method Close (line 394) | func (t *T) Close() { method Printf (line 399) | func (t *T) Printf(f string, a ...interface{}) { method Conn6 (line 404) | func (t *T) Conn6(portName string) Conn { method Conn4 (line 426) | func (t *T) Conn4(sourceIP, portName string) Conn { method ConnUnnamed (line 465) | func (t *T) ConnUnnamed(port uint16) Conn { method Conn (line 486) | func (t *T) Conn(portName string) Conn { method Subtest (line 495) | func (t *T) Subtest(name string, f func(t *T)) { function NewT (line 69) | func NewT(t *testing.T) *T { function init (line 503) | func init() {