Set WaitDelay when executing sendmail and hooks

This commit is contained in:
Andrew Ayer 2025-06-17 14:03:19 -04:00
parent 5430f737b0
commit a2a1fb1dab

View File

@ -94,8 +94,9 @@ func sendEmail(ctx context.Context, to []string, notif *notification) error {
sendmail := exec.CommandContext(sendmailCtx, sendmailPath(), args...) sendmail := exec.CommandContext(sendmailCtx, sendmailPath(), args...)
sendmail.Stdin = stdin sendmail.Stdin = stdin
sendmail.Stderr = stderr sendmail.Stderr = stderr
sendmail.WaitDelay = 5 * time.Second
if err := sendmail.Run(); err == nil { if err := sendmail.Run(); err == nil || err == exec.ErrWaitDelay {
return nil return nil
} else if sendmailCtx.Err() != nil && ctx.Err() == nil { } else if sendmailCtx.Err() != nil && ctx.Err() == nil {
return fmt.Errorf("error sending email to %v: sendmail command timed out") return fmt.Errorf("error sending email to %v: sendmail command timed out")
@ -116,8 +117,9 @@ func execScript(ctx context.Context, scriptName string, notif *notification) err
cmd.Env = os.Environ() cmd.Env = os.Environ()
cmd.Env = append(cmd.Env, notif.environ...) cmd.Env = append(cmd.Env, notif.environ...)
cmd.Stderr = stderr cmd.Stderr = stderr
cmd.WaitDelay = 5 * time.Second
if err := cmd.Run(); err == nil { if err := cmd.Run(); err == nil || err == exec.ErrWaitDelay {
return nil return nil
} else if ctx.Err() != nil { } else if ctx.Err() != nil {
return ctx.Err() return ctx.Err()