changeset 26685:76a794c05c78

imap: Remove imap_client.session_id Use mail_user.session_id instead. The imap_client.session_id was NULL for command line sessions, which gets fixed by using mail_user.session_id.
author Timo Sirainen <timo.sirainen@open-xchange.com>
date Thu, 21 Nov 2019 15:30:38 +0200
parents e359cb5dcb7e
children f5669cc3a822
files src/imap/imap-client-hibernate.c src/imap/imap-client.c src/imap/imap-client.h src/imap/main.c
diffstat 4 files changed, 7 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/imap/imap-client-hibernate.c	Thu Nov 21 15:21:13 2019 +0200
+++ b/src/imap/imap-client-hibernate.c	Thu Nov 21 15:30:38 2019 +0200
@@ -61,10 +61,8 @@
 			    (unsigned long long)peer_st.st_ino);
 	}
 
-	if (client->session_id != NULL) {
-		str_append(cmd, "\tsession=");
-		str_append_tabescaped(cmd, client->session_id);
-	}
+	str_append(cmd, "\tsession=");
+	str_append_tabescaped(cmd, user->session_id);
 	if (user->session_create_time != 0) {
 		str_printfa(cmd, "\tsession_created=%s",
 			    dec2str(user->session_create_time));
--- a/src/imap/imap-client.c	Thu Nov 21 15:21:13 2019 +0200
+++ b/src/imap/imap-client.c	Thu Nov 21 15:30:38 2019 +0200
@@ -68,7 +68,7 @@
 	config.url_port = client->set->imap_urlauth_port;
 	config.socket_path = t_strconcat(client->user->set->base_dir,
 					 "/"IMAP_URLAUTH_SOCKET_NAME, NULL);
-	config.session_id = client->session_id;
+	config.session_id = client->user->session_id;
 	config.access_user = client->user->username;
 	config.access_service = "imap";
 	config.access_anonymous = client->user->anonymous;
@@ -107,7 +107,7 @@
 	return FALSE;
 }
 
-struct client *client_create(int fd_in, int fd_out, const char *session_id,
+struct client *client_create(int fd_in, int fd_out,
 			     struct event *event, struct mail_user *user,
 			     struct mail_storage_service_user *service_user,
 			     const struct imap_settings *set,
@@ -131,7 +131,6 @@
 	client->set = set;
 	client->smtp_set = smtp_set;
 	client->service_user = service_user;
-	client->session_id = p_strdup(pool, session_id);
 	client->fd_in = fd_in;
 	client->fd_out = fd_out;
 	client->input = i_stream_create_fd(fd_in,
@@ -279,7 +278,7 @@
 	const struct var_expand_table logout_tab[] = {
 		{ 'i', dec2str(i_stream_get_absolute_offset(client->input)), "input" },
 		{ 'o', dec2str(client->output->offset), "output" },
-		{ '\0', client->session_id, "session" },
+		{ '\0', client->user->session_id, "session" },
 		{ '\0', dec2str(client->fetch_hdr_count), "fetch_hdr_count" },
 		{ '\0', dec2str(client->fetch_hdr_bytes), "fetch_hdr_bytes" },
 		{ '\0', dec2str(client->fetch_body_count), "fetch_body_count" },
--- a/src/imap/imap-client.h	Thu Nov 21 15:21:13 2019 +0200
+++ b/src/imap/imap-client.h	Thu Nov 21 15:30:38 2019 +0200
@@ -153,7 +153,6 @@
 
 	struct imap_client_vfuncs v;
 	struct event *event;
-	const char *session_id;
 	const char *const *userdb_fields; /* for internal session saving/restoring */
 
 	int fd_in, fd_out;
@@ -262,7 +261,7 @@
 
 /* Create new client with specified input/output handles. socket specifies
    if the handle is a socket. */
-struct client *client_create(int fd_in, int fd_out, const char *session_id,
+struct client *client_create(int fd_in, int fd_out,
 			     struct event *event, struct mail_user *user,
 			     struct mail_storage_service_user *service_user,
 			     const struct imap_settings *set,
--- a/src/imap/main.c	Thu Nov 21 15:21:13 2019 +0200
+++ b/src/imap/main.c	Thu Nov 21 15:30:38 2019 +0200
@@ -289,7 +289,7 @@
 		return -1;
 	}
 
-	client = client_create(fd_in, fd_out, input->session_id,
+	client = client_create(fd_in, fd_out,
 			       event, mail_user, user, imap_set, smtp_set);
 	client->userdb_fields = input->userdb_fields == NULL ? NULL :
 		p_strarray_dup(client->pool, input->userdb_fields);