"SSL Initialization failed");
return;
}
- if (conn->halted) {
- smtp_server_connection_input_lock(conn);
- return;
- }
}
i_assert(!conn->halted);
i_assert(ret == 0);
return;
}
+ if (conn->halted) {
+ smtp_server_connection_input_lock(conn);
+ return;
+ }
}
if (!conn->connect_succeeded &&
static void smtp_server_connection_created(struct smtp_server_connection *conn)
{
+ conn->raw_input = conn->conn.input;
+ conn->raw_output = conn->conn.output;
+
/* Halt input until started */
smtp_server_connection_halt(conn);
i_assert(!conn->started);
conn->started = TRUE;
- conn->raw_input = conn->conn.input;
- conn->raw_output = conn->conn.output;
-
if (!conn->ssl_start)
smtp_server_connection_ready(conn);
else if (conn->ssl_iostream == NULL)
{
conn->halted = TRUE;
smtp_server_connection_timeout_stop(conn);
- if (!conn->started || !conn->ssl_start || conn->ssl_iostream != NULL)
- smtp_server_connection_input_lock(conn);
+ if (conn->ssl_start &&
+ (conn->ssl_iostream == NULL ||
+ !ssl_iostream_is_handshaked(conn->ssl_iostream)))
+ return;
+
+ smtp_server_connection_input_lock(conn);
}
void smtp_server_connection_resume(struct smtp_server_connection *conn)