i searched the code what returns the error, hope this will help.
if you have any suggestions or experimantal code changes i'll compile
and test them
with my addheader milter.
Best regards
Matthias Schneider
cleanup_milter.c:
381 static int cleanup_milter_header_checks(CLEANUP_STATE *state,
VSTRING *buf)
382 {
383 char *ret;
384
385 /*
386 * Milter application "add/insert/replace header" requests
happen at the
387 * end-of-message stage, therefore all the header operations are
relative
388 * to the primary message header.
389 */
390 ret = hbc_header_checks((void *) state, state->milter_hbc_checks,
391 MIME_HDR_PRIMARY, (HEADER_OPTS *) 0,
392 buf, (off_t) 0);
393 if (ret == 0) {
394 return (0);
395 } else if (ret == HBC_CHECKS_STAT_ERROR) {
396 msg_warn("%s: %s map lookup problem -- "
397 "message not accepted, try again later",
398 state->queue_id, VAR_MILT_HEAD_CHECKS);
399 state->errs |= CLEANUP_STAT_WRITE;
400 return (0);
401 } else {
402 if (ret != STR(buf)) {
403 vstring_strcpy(buf, ret);
404 myfree(ret);
405 }
406 return (1);
407 }
408 }