dovecot-2.0: lib-master: Log an error if login client disconnect...
dovecot at dovecot.org
dovecot at dovecot.org
Wed Apr 7 12:06:15 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/5074e30d72d4
changeset: 11108:5074e30d72d4
user: Timo Sirainen <tss at iki.fi>
date: Wed Apr 07 12:04:42 2010 +0300
description:
lib-master: Log an error if login client disconnects too early.
diffstat:
src/lib-master/master-login.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diffs (32 lines):
diff -r c0fe14f76760 -r 5074e30d72d4 src/lib-master/master-login.c
--- a/src/lib-master/master-login.c Wed Apr 07 11:58:00 2010 +0300
+++ b/src/lib-master/master-login.c Wed Apr 07 12:04:42 2010 +0300
@@ -19,6 +19,8 @@
#define master_login_conn_is_closed(conn) \
((conn)->fd == -1)
+#define master_login_conn_has_clients(conn) \
+ ((conn)->refcount > 1)
struct master_login_connection {
struct master_login_connection *prev, *next;
@@ -110,6 +112,8 @@
if (ret != sizeof(*req_r)) {
if (ret == 0) {
/* disconnected */
+ if (master_login_conn_has_clients(conn))
+ i_error("Login client disconnected too early");
} else if (ret > 0) {
/* request wasn't fully read */
i_error("fd_read() partial input (%d/%d)",
@@ -133,6 +137,10 @@
if (ret != (ssize_t)req_r->data_size) {
if (ret == 0) {
/* disconnected */
+ if (master_login_conn_has_clients(conn)) {
+ i_error("Login client disconnected too early "
+ "(while reading data)");
+ }
} else if (ret > 0) {
/* request wasn't fully read */
i_error("Data read partially %d/%u",
More information about the dovecot-cvs
mailing list