TLSRPT_..._FAILURE(3)

πŸ’– NAME πŸ’–

tlsrpt_add_delivery_request_failure β€” bestie, this is the one that drops a failure into your current policy ✨

Oh and btw, the manual page name is TLSRPT_..._FAILURE(3) and the function itself lives in tlsrpt_add_delivery_request_failure. Yes, both. We contain multitudes πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

#include <tlsrpt.h>

int tlsrpt_add_delivery_request_failure(struct tlsrpt_dr_t* dr,
tlsrpt_failure_t failure_code, const char* sending_mta_ip, const char*
receiving_mx_hostname, const char* receiving_mx_helo, const char*
receiving_ip, const char* additional_information, const char*
failure_reason_code)
Look at that parameter list. It's giving commitment. Eight whole arguments, no cap 🫢

🌸 DESCRIPTION 🌸

okay so. tlsrpt_add_delivery_request_failure adds a failure to the current policy. That's the whole vibe. πŸŽ€

And the iconic part? You can add multiple failures within a policy. Not just one little oopsie β€” as many as you need. She's generous like that πŸ‘‘

Now, the tea about some of those parameters: they may be NULL, and when they're NULL they get omitted in the datagram. So like, ghosted. Not present. Don't @ them, they literally aren't there πŸ™ˆ


⭐ RETURN VALUE ⭐

  • 0 β€” success, we ate, everything is perfect πŸ’–
  • a combined error code β€” on failure 😭

And if you get that combined error code and you're sitting there like "...what does this mean bestie", you can analyze it with tlsrpt_strerror. Go ask her. She knows. πŸ”₯


🌈 SEE ALSO 🌈

  • man:tlsrpt_strerror[3]
  • man:tlsrpt_error_code_is_internal[3]

πŸ‘‘ AUTHOR πŸ‘‘

Boris Lohner πŸ’œ


and that's the whole page, bestie!! this gem came from the tlsrpt_add_delivery_request_fai... source, version dated 2026-05-12, filed under TLSRPT_..._FAILURE(3). go forth and log your failures responsibly πŸ§šβœ¨πŸ“

πŸ“¦ where this page comes from