summaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorGilles Chehade <gilles@cvs.openbsd.org>2009-01-30 21:52:56 +0000
committerGilles Chehade <gilles@cvs.openbsd.org>2009-01-30 21:52:56 +0000
commit3227121c77a9f3359c21cefe580a085c77bf3c9e (patch)
tree9e14d65fb6a53725a26be07d9358a6b5cdd06edb /usr.sbin
parent8452589c8ddef50efc571850d1c840f2f09e4ed9 (diff)
when decreasing ssl related counters, make sure the session was flagged as
F_SECURE. while at it, add "smtp.sessions.aborted" which keeps track of sessions which were interrupted before completion.
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/smtpd/smtp_session.c3
-rw-r--r--usr.sbin/smtpd/smtpctl.c3
-rw-r--r--usr.sbin/smtpd/smtpd.h4
-rw-r--r--usr.sbin/smtpd/ssl.c8
4 files changed, 12 insertions, 6 deletions
diff --git a/usr.sbin/smtpd/smtp_session.c b/usr.sbin/smtpd/smtp_session.c
index 7d890bf93ab..408765b1663 100644
--- a/usr.sbin/smtpd/smtp_session.c
+++ b/usr.sbin/smtpd/smtp_session.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: smtp_session.c,v 1.51 2009/01/30 21:40:21 gilles Exp $ */
+/* $OpenBSD: smtp_session.c,v 1.52 2009/01/30 21:52:55 gilles Exp $ */
/*
* Copyright (c) 2008 Gilles Chehade <gilles@openbsd.org>
@@ -947,6 +947,7 @@ session_error(struct bufferevent *bev, short event, void *p)
* but set F_QUIT flag so that we destroy it as
* soon as the event lock is removed.
*/
+ s_smtp.aborted++;
if (s->s_flags & F_EVLOCKED)
s->s_flags |= F_QUIT;
else
diff --git a/usr.sbin/smtpd/smtpctl.c b/usr.sbin/smtpd/smtpctl.c
index 34d49d3a9ef..cd465cac18f 100644
--- a/usr.sbin/smtpd/smtpctl.c
+++ b/usr.sbin/smtpd/smtpctl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: smtpctl.c,v 1.11 2009/01/30 21:40:21 gilles Exp $ */
+/* $OpenBSD: smtpctl.c,v 1.12 2009/01/30 21:52:55 gilles Exp $ */
/*
* Copyright (c) 2006 Pierre-Yves Ritschard <pyr@openbsd.org>
@@ -279,6 +279,7 @@ show_stats_output(struct imsg *imsg)
printf("runner.active = %zd\n", s_runner.active);
printf("smtp.sessions = %zd\n", s_smtp.sessions);
+ printf("smtp.sessions.aborted = %zd\n", s_smtp.aborted);
printf("smtp.sessions.active = %zd\n", s_smtp.sessions_active);
printf("smtp.sessions.ssmtp = %zd\n", s_smtp.ssmtp);
printf("smtp.sessions.ssmtp.active = %zd\n", s_smtp.ssmtp_active);
diff --git a/usr.sbin/smtpd/smtpd.h b/usr.sbin/smtpd/smtpd.h
index da097f01504..de87462f5bd 100644
--- a/usr.sbin/smtpd/smtpd.h
+++ b/usr.sbin/smtpd/smtpd.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: smtpd.h,v 1.67 2009/01/30 21:40:21 gilles Exp $ */
+/* $OpenBSD: smtpd.h,v 1.68 2009/01/30 21:52:55 gilles Exp $ */
/*
* Copyright (c) 2008 Gilles Chehade <gilles@openbsd.org>
@@ -663,6 +663,8 @@ struct s_smtp {
size_t starttls;
size_t starttls_active;
+
+ size_t aborted;
};
struct stats {
diff --git a/usr.sbin/smtpd/ssl.c b/usr.sbin/smtpd/ssl.c
index 4cf4b88c672..6dd662c9f42 100644
--- a/usr.sbin/smtpd/ssl.c
+++ b/usr.sbin/smtpd/ssl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl.c,v 1.8 2009/01/30 21:40:21 gilles Exp $ */
+/* $OpenBSD: ssl.c,v 1.9 2009/01/30 21:52:55 gilles Exp $ */
/*
* Copyright (c) 2008 Pierre-Yves Ritschard <pyr@openbsd.org>
@@ -595,10 +595,12 @@ void
ssl_session_destroy(struct session *s)
{
if (s->s_l->flags & F_SSMTP) {
- s_smtp.ssmtp_active--;
+ if (s->s_flags & F_SECURE)
+ s_smtp.ssmtp_active--;
}
if (s->s_l->flags & F_STARTTLS) {
- s_smtp.starttls_active--;
+ if (s->s_flags & F_SECURE)
+ s_smtp.starttls_active--;
}
SSL_free(s->s_ssl);
}