upgrade deps; rewrite smtp session

This commit is contained in:
Aine
2024-02-19 22:55:14 +02:00
parent 10213cc7d7
commit a01720da00
277 changed files with 106832 additions and 7641 deletions

View File

@@ -27,7 +27,10 @@ const (
ErrorMalformedChildPart = "Malformed child part"
)
// MaxPartErrors limits number of part parsing errors, errors after the limit are ignored. 0 means unlimited.
// MaxPartErrors limits number of part parsing errors, errors after the limit are ignored.
// 0 means unlimited.
//
// Deprecated: This limit may be set via the `MaxStoredPartErrors` Parser option.
var MaxPartErrors = 0
// Error describes an error encountered while parsing.
@@ -71,7 +74,32 @@ func (p *Part) addWarning(name string, detailFmt string, args ...interface{}) {
// addProblem adds general *Error to the Part error slice.
func (p *Part) addProblem(err *Error) {
if (MaxPartErrors == 0) || (len(p.Errors) < MaxPartErrors) {
maxErrors := MaxPartErrors
if p.parser != nil && p.parser.maxStoredPartErrors != nil {
// Override global var.
maxErrors = *p.parser.maxStoredPartErrors
}
if (maxErrors == 0) || (len(p.Errors) < maxErrors) {
p.Errors = append(p.Errors, err)
}
}
// ErrorCollector is an interface for collecting errors and warnings during
// parsing.
type ErrorCollector interface {
AddError(name string, detailFmt string, args ...any)
AddWarning(name string, detailFmt string, args ...any)
}
type partErrorCollector struct {
part *Part
}
func (p *partErrorCollector) AddError(name string, detailFmt string, args ...any) {
p.part.addError(name, detailFmt, args...)
}
func (p *partErrorCollector) AddWarning(name string, detailFmt string, args ...any) {
p.part.addWarning(name, detailFmt, args...)
}