refresh_proctitle();
}
+void client_update_data_state(struct client *client, const char *new_args)
+{
+ i_assert(client->state.state == SMTP_SERVER_STATE_DATA);
+ i_free(client->state.args);
+ client->state.args = i_strdup(new_args);
+
+ if (clients_count == 1)
+ refresh_proctitle();
+}
+
static void
client_connection_proxy_data_updated(void *context,
const struct smtp_proxy_data *data)
const char *reason) ATTR_NULL(2, 3);
void client_state_reset(struct client *client);
+void client_update_data_state(struct client *client, const char *new_args);
void clients_destroy(void);
io_loop_time_refresh();
lldctx.delivery_time_started = ioloop_timeval;
+ client_update_data_state(client, username);
i_set_failure_prefix("lmtp(%s, %s): ", my_pid, username);
if (mail_storage_service_next(storage_service, service_user,
&rcpt_user, &error) < 0) {
struct smtp_server_transaction *trans,
struct mail_deliver_session *session)
{
+ struct client *client = local->client;
uid_t first_uid = (uid_t)-1;
struct mail *src_mail;
struct lmtp_local_recipient *const *llrcpts;
ret = lmtp_local_deliver(local, cmd,
trans, llrcpt, src_mail, session);
+ client_update_data_state(client, NULL);
i_set_failure_prefix("lmtp(%s): ", my_pid);
/* succeeded and mail_user is not saved in first_saved_mail */
i_assert(data_input->seekable);
i_assert(proxy->data_input == NULL);
+ client_update_data_state(client, "proxying");
+
proxy->data_input = data_input;
i_stream_ref(proxy->data_input);
if (i_stream_get_size(proxy->data_input, TRUE, &size) < 0) {