diff options
author | Eric Faurot <eric@faurot.net> | 2013-01-28 11:24:47 +0100 |
---|---|---|
committer | Eric Faurot <eric@faurot.net> | 2013-01-28 11:49:53 +0100 |
commit | a802aa3b45c13b7035bb3774fe49a07243973351 (patch) | |
tree | 190cd246c089b532a80d6ceb6b30c1961b5afafc | |
parent | sync with OpenBSD tree: cvsid + man page fixes (diff) | |
download | OpenSMTPD-a802aa3b45c13b7035bb3774fe49a07243973351.tar.xz OpenSMTPD-a802aa3b45c13b7035bb3774fe49a07243973351.zip |
improve logging on mta
-rw-r--r-- | smtpd/mta.c | 5 | ||||
-rw-r--r-- | smtpd/mta_session.c | 23 | ||||
-rw-r--r-- | smtpd/smtpd.h | 2 |
3 files changed, 20 insertions, 10 deletions
diff --git a/smtpd/mta.c b/smtpd/mta.c index 881ac1bb..1b2a54f0 100644 --- a/smtpd/mta.c +++ b/smtpd/mta.c @@ -491,16 +491,13 @@ mta_source_error(struct mta_relay *relay, struct mta_route *route, const char *e * Also, we need a timeout on that. */ void -mta_route_error(struct mta_relay *relay, struct mta_route *route, const char *e) +mta_route_error(struct mta_relay *relay, struct mta_route *route) { route->dst->nerror++; if (route->dst->flags & HOST_IGNORE) return; - log_info("smtp-out: Error on route %s: %s", - mta_route_to_text(route), e); - if (route->dst->nerror > MAXERROR_PER_HOST) { log_info("smtp-out: Too many errors on host %s: ignoring this MX", mta_host_to_text(route->dst)); diff --git a/smtpd/mta_session.c b/smtpd/mta_session.c index cb253ebd..d387c7c7 100644 --- a/smtpd/mta_session.c +++ b/smtpd/mta_session.c @@ -443,8 +443,10 @@ mta_connect(struct mta_session *s) schema = "smtps://"; else schema = "smtp://"; - log_debug("debug: mta: %p: connecting to %s%s:%i (%s)", - s, schema, sa_to_text(sa), portno, s->route->dst->ptrname); + + log_info("smtp-out: Connecting to %s%s:%i (%s) on session" + " %016"PRIx64"...", schema, sa_to_text(s->route->dst->sa), + portno, s->route->dst->ptrname, s->id); mta_enter_state(s, MTA_INIT); iobuf_xinit(&s->iobuf, 0, 0, "mta_connect"); @@ -794,8 +796,8 @@ mta_io(struct io *io, int evt) schema = "smtps://"; else schema = "smtp://"; - log_debug("debug: mta: %p: connected to %s%s (%s)", - s, schema, sa_to_text(s->route->dst->sa), s->route->dst->ptrname); + + log_info("smtp-out: Connected on session %016"PRIx64, s->id); if (s->use_smtps) { io_set_write(io); @@ -867,6 +869,9 @@ mta_io(struct io *io, int evt) goto nextline; if (s->state == MTA_QUIT) { + log_info("smtp-out: Closing session %016"PRIx64 + ": %i message%s sent.", s->id, s->msgcount, + (s->msgcount > 1) ? "s" : ""); mta_free(s); return; } @@ -1031,7 +1036,15 @@ mta_error(struct mta_session *s, const char *fmt, ...) fatal("mta: vasprintf"); va_end(ap); - mta_route_error(s->relay, s->route, error); + if (s->msgcount) + log_info("smtp-out: Error on session %016"PRIx64 + " after %i message%s sent: %s", s->id, s->msgcount, + (s->msgcount > 1) ? "s" : "", error); + else + log_info("smtp-out: Error on session %016"PRIx64 ": %s", + s->id, error); + + mta_route_error(s->relay, s->route); if (s->task) mta_flush_task(s, IMSG_DELIVERY_TEMPFAIL, error); diff --git a/smtpd/smtpd.h b/smtpd/smtpd.h index 97fab2d3..7c8e11e6 100644 --- a/smtpd/smtpd.h +++ b/smtpd/smtpd.h @@ -1189,7 +1189,7 @@ void m_get_envelope(struct msg *, struct envelope *); /* mta.c */ pid_t mta(void); void mta_route_ok(struct mta_relay *, struct mta_route *); -void mta_route_error(struct mta_relay *, struct mta_route *, const char *); +void mta_route_error(struct mta_relay *, struct mta_route *); void mta_route_collect(struct mta_relay *, struct mta_route *); void mta_source_error(struct mta_relay *, struct mta_route *, const char *); void mta_delivery(struct envelope *, const char *, int, const char *); |