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

Method getRcptModifiers

internal/msgpipeline/msgpipeline.go:609–628  ·  view source on GitHub ↗
(ctx context.Context, rcptBlock *rcptBlock, rcptTo string)

Source from the content-addressed store, hash-verified

607}
608
609func (dd *msgpipelineDelivery) getRcptModifiers(ctx context.Context, rcptBlock *rcptBlock, rcptTo string) (module.ModifierState, error) {
610 rcptModifiersState, ok := dd.rcptModifiersState[rcptBlock]
611 if ok {
612 return rcptModifiersState, nil
613 }
614
615 rcptModifiersState, err := rcptBlock.modifiers.ModStateForMsg(ctx, dd.msgMeta)
616 if err != nil {
617 return nil, err
618 }
619
620 newSender, err := rcptModifiersState.RewriteSender(ctx, dd.sourceAddr)
621 if err == nil && newSender != dd.sourceAddr {
622 dd.log.Msg("Per-recipient modifier changed sender address. This is not supported and will "+
623 "be ignored.", "rcpt", rcptTo, "originalFrom", dd.sourceAddr, "modifiedFrom", newSender)
624 }
625
626 dd.rcptModifiersState[rcptBlock] = rcptModifiersState
627 return rcptModifiersState, nil
628}
629
630func (dd *msgpipelineDelivery) getDelivery(ctx context.Context, tgt module.DeliveryTarget) (*delivery, error) {
631 delivery_, ok := dd.deliveries[tgt]

Callers 1

AddRcptMethod · 0.95

Calls 3

MsgMethod · 0.80
ModStateForMsgMethod · 0.65
RewriteSenderMethod · 0.65

Tested by

no test coverage detected