From: Stephan Bosch Date: Wed, 22 Apr 2020 20:26:25 +0000 (+0200) Subject: lib-smtp: smtp-params - Remove code duplication between smtp_params_*_add_extra(). X-Git-Tag: 2.3.13~555 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6f68a5d7632f4316057d25ad2c0a1cf620583189;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: smtp-params - Remove code duplication between smtp_params_*_add_extra(). --- diff --git a/src/lib-smtp/smtp-params.c b/src/lib-smtp/smtp-params.c index 5085f390a3..9b39ae9699 100644 --- a/src/lib-smtp/smtp-params.c +++ b/src/lib-smtp/smtp-params.c @@ -90,6 +90,22 @@ int smtp_param_parse(pool_t pool, const char *text, return 1; } +/* manipulate */ + +void smtp_params_add_one(ARRAY_TYPE(smtp_param) *params, pool_t pool, + const char *keyword, const char *value) +{ + struct smtp_param param; + + if (!array_is_created(params)) + p_array_init(params, pool, 4); + + i_zero(¶m); + param.keyword = p_strdup(pool, keyword); + param.value = p_strdup(pool, value); + array_push_back(params, ¶m); +} + /* write */ static bool smtp_param_value_valid(const char *value) @@ -484,15 +500,7 @@ void smtp_params_mail_copy(pool_t pool, struct smtp_params_mail *dst, void smtp_params_mail_add_extra(struct smtp_params_mail *params, pool_t pool, const char *keyword, const char *value) { - struct smtp_param param; - - if (!array_is_created(¶ms->extra_params)) - p_array_init(¶ms->extra_params, pool, 4); - - i_zero(¶m); - param.keyword = p_strdup(pool, keyword); - param.value = p_strdup(pool, value); - array_push_back(¶ms->extra_params, ¶m); + smtp_params_add_one(¶ms->extra_params, pool, keyword, value); } bool smtp_params_mail_drop_extra(struct smtp_params_mail *params, @@ -1075,15 +1083,7 @@ void smtp_params_rcpt_copy(pool_t pool, struct smtp_params_rcpt *dst, void smtp_params_rcpt_add_extra(struct smtp_params_rcpt *params, pool_t pool, const char *keyword, const char *value) { - struct smtp_param param; - - if (!array_is_created(¶ms->extra_params)) - p_array_init(¶ms->extra_params, pool, 4); - - i_zero(¶m); - param.keyword = p_strdup(pool, keyword); - param.value = p_strdup(pool, value); - array_push_back(¶ms->extra_params, ¶m); + smtp_params_add_one(¶ms->extra_params, pool, keyword, value); } bool smtp_params_rcpt_drop_extra(struct smtp_params_rcpt *params, diff --git a/src/lib-smtp/smtp-params.h b/src/lib-smtp/smtp-params.h index caa5c08637..1052f39d85 100644 --- a/src/lib-smtp/smtp-params.h +++ b/src/lib-smtp/smtp-params.h @@ -83,6 +83,11 @@ enum smtp_param_parse_error { int smtp_param_parse(pool_t pool, const char *text, struct smtp_param *param_r, const char **error_r); +/* manipulate */ + +void smtp_params_add_one(ARRAY_TYPE(smtp_param) *params, pool_t pool, + const char *keyword, const char *value); + /* write */ void smtp_param_write(string_t *out, const struct smtp_param *param);