From 8dec1377c7cf33823da5d8f831d10cb82333bc8b Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sat, 21 Jun 2008 18:19:41 +0300 Subject: [PATCH] Just send CAPABILITY response code for all LOGIN/AUTHENTICATE commands. Simplifies things and Lemonade spec specifies it as a "MUST be sent" anyway. --HG-- branch : HEAD --- src/imap-login/client.c | 6 ------ src/imap/main.c | 3 --- src/login-common/client-common.h | 1 - src/login-common/master.c | 1 - src/master/login-process.c | 1 - src/master/mail-process.c | 4 ---- src/master/mail-process.h | 1 - src/master/master-login-interface.h | 5 ----- 8 files changed, 22 deletions(-) diff --git a/src/imap-login/client.c b/src/imap-login/client.c index 0027dc5510..f7be75a3ef 100644 --- a/src/imap-login/client.c +++ b/src/imap-login/client.c @@ -108,8 +108,6 @@ static const char *get_capability(struct imap_client *client, bool full) static int cmd_capability(struct imap_client *client) { - client->common.master_login_flags |= - LOGIN_IMAP_FLAG_FULL_CAPABILITY_SENT; client_send_line(client, t_strconcat( "* CAPABILITY ", get_capability(client, TRUE), NULL)); client_send_tagline(client, "OK Capability completed."); @@ -138,10 +136,6 @@ static void client_start_tls(struct imap_client *client) client->common.secured = TRUE; client_set_title(client); - /* CAPABILITY sent before STARTTLS can't be trusted */ - client->common.master_login_flags &= - ~LOGIN_IMAP_FLAG_FULL_CAPABILITY_SENT; - client->common.fd = fd_ssl; i_stream_unref(&client->common.input); o_stream_unref(&client->output); diff --git a/src/imap/main.c b/src/imap/main.c index e5d717201b..1bf0a5831c 100644 --- a/src/imap/main.c +++ b/src/imap/main.c @@ -252,9 +252,6 @@ static void main_init(void) "* PREAUTH [CAPABILITY ", str_c(capability_string), "] " "Logged in as ", user, NULL)); - } else if (getenv("CLIENT_SEND_CAPABILITY") == NULL) { - client_send_line(client, - t_strconcat(tag, " OK Logged in.", NULL)); } else { client_send_line(client, t_strconcat( tag, " OK [CAPABILITY ", diff --git a/src/login-common/client-common.h b/src/login-common/client-common.h index 17c95d70a9..cd711f5c4c 100644 --- a/src/login-common/client-common.h +++ b/src/login-common/client-common.h @@ -28,7 +28,6 @@ struct client { char *auth_mech_name; struct auth_request *auth_request; - enum master_login_flags master_login_flags; unsigned int master_tag; master_callback_t *master_callback; sasl_server_callback_t *sasl_callback; diff --git a/src/login-common/master.c b/src/login-common/master.c index 1b2fe2f572..0571048964 100644 --- a/src/login-common/master.c +++ b/src/login-common/master.c @@ -87,7 +87,6 @@ void master_request_login(struct client *client, master_callback_t *callback, req->auth_id = auth_id; req->local_ip = client->local_ip; req->remote_ip = client->ip; - req->flags = client->master_login_flags; req->cmd_tag_size = cmd_tag_size; req->data_size = req->cmd_tag_size + size; #if (LOGIN_MAX_INBUF_SIZE*2) != MASTER_LOGIN_MAX_DATA_SIZE diff --git a/src/master/login-process.c b/src/master/login-process.c index 1fc13670ae..69021d5251 100644 --- a/src/master/login-process.c +++ b/src/master/login-process.c @@ -438,7 +438,6 @@ static void login_process_input(struct login_process *p) authreq->mail_request.fd = client_fd; authreq->mail_request.local_ip = req.local_ip; authreq->mail_request.remote_ip = req.remote_ip; - authreq->mail_request.flags = req.flags; authreq->mail_request.cmd_tag_size = req.cmd_tag_size; authreq->mail_request.data_size = req.data_size; memcpy(authreq->data, data, req.data_size); diff --git a/src/master/mail-process.c b/src/master/mail-process.c index ae664a2196..586b942f77 100644 --- a/src/master/mail-process.c +++ b/src/master/mail-process.c @@ -14,7 +14,6 @@ #include "home-expand.h" #include "var-expand.h" #include "mail-process.h" -#include "master-login-interface.h" #include "login-process.h" #include "log.h" @@ -837,9 +836,6 @@ create_mail_process(enum process_type process_type, struct settings *set, env_put(t_strconcat("IMAPLOGINTAG=", t_strndup(data, request->cmd_tag_size), NULL)); } - if ((request->flags & LOGIN_IMAP_FLAG_FULL_CAPABILITY_SENT) == 0 && - process_type == PROCESS_TYPE_IMAP) - env_put("CLIENT_SEND_CAPABILITY=1"); if (request->data_size > request->cmd_tag_size) { str_truncate(str, 0); diff --git a/src/master/mail-process.h b/src/master/mail-process.h index 1a64e14215..3d9ffbe84e 100644 --- a/src/master/mail-process.h +++ b/src/master/mail-process.h @@ -6,7 +6,6 @@ struct mail_login_request { int fd; - enum master_login_flags flags; unsigned int cmd_tag_size; unsigned int data_size; struct ip_addr local_ip, remote_ip; diff --git a/src/master/master-login-interface.h b/src/master/master-login-interface.h index 0bf49200e7..03f68aabff 100644 --- a/src/master/master-login-interface.h +++ b/src/master/master-login-interface.h @@ -25,10 +25,6 @@ enum master_login_state { LOGIN_STATE_COUNT }; -enum master_login_flags { - LOGIN_IMAP_FLAG_FULL_CAPABILITY_SENT = 0x01 -}; - struct master_login_request { uint32_t version; /* if fd == -1, tag is used as master_login_state */ @@ -39,7 +35,6 @@ struct master_login_request { /* request follows this many bytes of client input */ uint16_t data_size; uint16_t cmd_tag_size; - uint32_t flags; ino_t ino; -- 2.47.3