]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: smtp-params - Remove code duplication between smtp_params_*_add_extra().
authorStephan Bosch <stephan.bosch@open-xchange.com>
Wed, 22 Apr 2020 20:26:25 +0000 (22:26 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Wed, 27 May 2020 05:32:15 +0000 (05:32 +0000)
src/lib-smtp/smtp-params.c
src/lib-smtp/smtp-params.h

index 5085f390a358dc80908ec0150bd96108125c39d1..9b39ae96995eec8eeaf34bf7d79aa27def223e81 100644 (file)
@@ -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(&param);
+       param.keyword = p_strdup(pool, keyword);
+       param.value = p_strdup(pool, value);
+       array_push_back(params, &param);
+}
+
 /* 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(&params->extra_params))
-               p_array_init(&params->extra_params, pool, 4);
-
-       i_zero(&param);
-       param.keyword = p_strdup(pool, keyword);
-       param.value = p_strdup(pool, value);
-       array_push_back(&params->extra_params, &param);
+       smtp_params_add_one(&params->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(&params->extra_params))
-               p_array_init(&params->extra_params, pool, 4);
-
-       i_zero(&param);
-       param.keyword = p_strdup(pool, keyword);
-       param.value = p_strdup(pool, value);
-       array_push_back(&params->extra_params, &param);
+       smtp_params_add_one(&params->extra_params, pool, keyword, value);
 }
 
 bool smtp_params_rcpt_drop_extra(struct smtp_params_rcpt *params,
index caa5c0863791de841f6ac7e83440e5e0dfb323db..1052f39d8547798a2b635f9d58bea974b7ad116f 100644 (file)
@@ -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);