+ /* search first ": ". we assume to find the remote-MTA answer there */
+ if (!(s = Ustrstr(addr->message, ": ")))
+ return; /* not found, bail out */
+ s += 2; /* skip ": " */
+ fprintf(f, "Diagnostic-Code: smtp; ");
+ }
+/* user_message set? use it instead */
+else if ((s = addr->user_message))
+ {
+ DEBUG(D_deliver)
+ debug_printf("DSN Diagnostic-Code: addr->user_message = %s\n", s);
+ /* local errors like timeout get 426 */
+ fprintf(f, "Diagnostic-Code: smtp; 426 ");
+ }
+/* no message available. do nothing */
+else
+ return;