aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Faurot <eric@faurot.net>2013-01-28 11:24:47 +0100
committerEric Faurot <eric@faurot.net>2013-01-28 11:49:53 +0100
commita802aa3b45c13b7035bb3774fe49a07243973351 (patch)
tree190cd246c089b532a80d6ceb6b30c1961b5afafc
parentsync with OpenBSD tree: cvsid + man page fixes (diff)
downloadOpenSMTPD-a802aa3b45c13b7035bb3774fe49a07243973351.tar.xz
OpenSMTPD-a802aa3b45c13b7035bb3774fe49a07243973351.zip
improve logging on mta
-rw-r--r--smtpd/mta.c5
-rw-r--r--smtpd/mta_session.c23
-rw-r--r--smtpd/smtpd.h2
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 *);