From: Stephan Bosch Date: Sat, 3 Nov 2018 10:18:10 +0000 (+0100) Subject: lib-smtp: server: Add smtp_server_reply_ehlo_add_params(). X-Git-Tag: 2.3.9~986 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=df7bcd399e99bf03e8d5833ace53134d70e0f11f;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: server: Add smtp_server_reply_ehlo_add_params(). --- diff --git a/src/lib-smtp/smtp-server-reply.c b/src/lib-smtp/smtp-server-reply.c index 64deff0d9d..dba00ec883 100644 --- a/src/lib-smtp/smtp-server-reply.c +++ b/src/lib-smtp/smtp-server-reply.c @@ -507,6 +507,29 @@ void smtp_server_reply_ehlo_add_param(struct smtp_server_reply *reply, str_append(textbuf, "\r\n"); } +void smtp_server_reply_ehlo_add_params(struct smtp_server_reply *reply, + const char *keyword, + const char *const *params) +{ + string_t *textbuf; + + i_assert(!reply->submitted); + i_assert(reply->content != NULL); + textbuf = reply->content->text; + + reply->content->last_line = str_len(textbuf); + str_append(textbuf, reply->content->status_prefix); + str_append(textbuf, keyword); + if (params != NULL) { + while (*params != NULL) { + str_append_c(textbuf, ' '); + str_append(textbuf, *params); + params++; + } + } + str_append(textbuf, "\r\n"); +} + void smtp_server_reply_ehlo_add_8bitmime(struct smtp_server_reply *reply) { struct smtp_server_cmd_ctx *cmd = &reply->command->context; diff --git a/src/lib-smtp/smtp-server.h b/src/lib-smtp/smtp-server.h index 97b6e03cb0..ff9ee92f5e 100644 --- a/src/lib-smtp/smtp-server.h +++ b/src/lib-smtp/smtp-server.h @@ -633,6 +633,9 @@ void smtp_server_reply_ehlo_add(struct smtp_server_reply *reply, const char *keyword); void smtp_server_reply_ehlo_add_param(struct smtp_server_reply *reply, const char *keyword, const char *param_fmt, ...) ATTR_FORMAT(3, 4); +void smtp_server_reply_ehlo_add_params(struct smtp_server_reply *reply, + const char *keyword, + const char *const *params) ATTR_NULL(3); void smtp_server_reply_ehlo_add_8bitmime(struct smtp_server_reply *reply); void smtp_server_reply_ehlo_add_binarymime(struct smtp_server_reply *reply);