From ad2fcb002120f401bd5898ea90e3066957934fea Mon Sep 17 00:00:00 2001
From: Aki Tuomi <aki.tuomi@open-xchange.com>
Date: Wed, 5 Apr 2023 20:08:12 +0300
Subject: [PATCH] managesieve-login: Accept DESTNAME in XCLIENT

---
 src/managesieve-login/client.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/managesieve-login/client.c b/src/managesieve-login/client.c
index d44d5a2ae..bb9f73d58 100644
--- a/src/managesieve-login/client.c
+++ b/src/managesieve-login/client.c
@@ -3,6 +3,7 @@
 
 #include "login-common.h"
 #include "buffer.h"
+#include "connection.h"
 #include "ioloop.h"
 #include "istream.h"
 #include "ostream.h"
@@ -193,6 +194,13 @@ cmd_xclient(struct managesieve_client *client,
 			client->common.end_client_tls_secured_set = TRUE;
 			client->common.end_client_tls_secured =
 				str_begins_with(value, CLIENT_TRANSPORT_TLS);
+		} else if (str_begins_icase(arg, "DESTNAME=", &value)) {
+			if (connection_is_valid_dns_name(value)) {
+				client->common.local_name =
+					p_strdup(client->common.pool, value);
+			} else {
+				args_ok = FALSE;
+			}
 		}
 		args++;
 	}
-- 
GitLab