diff options
Diffstat (limited to 'mail.c')
-rw-r--r-- | mail.c | 19 |
1 files changed, 11 insertions, 8 deletions
@@ -1,8 +1,9 @@ /* + * Copyright (c) 2008-2014, Simon Schubert <2@0x2c.org>. * Copyright (c) 2008 The DragonFly Project. All rights reserved. * * This code is derived from software contributed to The DragonFly Project - * by Simon 'corecode' Schubert <corecode@fs.ei.tum.de>. + * by Simon Schubert <2@0x2c.org>. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -51,7 +52,7 @@ bounce(struct qitem *it, const char *reason) /* Don't bounce bounced mails */ if (it->sender[0] == 0) { syslog(LOG_INFO, "can not bounce a bounce message, discarding"); - exit(1); + exit(EX_SOFTWARE); } bzero(&bounceq, sizeof(bounceq)); @@ -132,7 +133,7 @@ bounce(struct qitem *it, const char *reason) fail: syslog(LOG_CRIT, "error creating bounce: %m"); delqueue(it); - exit(1); + exit(EX_IOERR); } struct parse_state { @@ -332,10 +333,10 @@ newaddr: ps->pos = 0; addr = strdup(ps->addr); if (addr == NULL) - errlog(1, NULL); + errlog(EX_SOFTWARE, NULL); if (add_recp(queue, addr, EXPAND_WILDCARD) != 0) - errlogx(1, "invalid recipient `%s'", addr); + errlogx(EX_DATAERR, "invalid recipient `%s'", addr); goto again; } @@ -374,7 +375,9 @@ readmail(struct queue *queue, int nodot, int recp_from_header) if (fgets(line, sizeof(line) - 1, stdin) == NULL) break; if (had_last_line) - errlogx(1, "bad mail input format"); + errlogx(EX_DATAERR, "bad mail input format:" + " from %s (uid %d) (envelope-from %s)", + username, useruid, queue->sender); linelen = strlen(line); if (linelen == 0 || line[linelen - 1] != '\n') { /* @@ -405,7 +408,7 @@ readmail(struct queue *queue, int nodot, int recp_from_header) if (parse_state.state != NONE) { if (parse_addrs(&parse_state, line, queue) < 0) { - errlogx(1, "invalid address in header\n"); + errlogx(EX_DATAERR, "invalid address in header\n"); /* NOTREACHED */ } } @@ -416,7 +419,7 @@ readmail(struct queue *queue, int nodot, int recp_from_header) strprefixcmp(line, "Bcc:") == 0)) { parse_state.state = START; if (parse_addrs(&parse_state, line, queue) < 0) { - errlogx(1, "invalid address in header\n"); + errlogx(EX_DATAERR, "invalid address in header\n"); /* NOTREACHED */ } } |