]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: smtp-params - Remove code duplication between smtp_params_*_drop_extra().
authorStephan Bosch <stephan.bosch@open-xchange.com>
Wed, 22 Apr 2020 20:32:55 +0000 (22:32 +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 9b39ae96995eec8eeaf34bf7d79aa27def223e81..b84c02ad66eb9e4d6766366c1663a39fc90de7d1 100644 (file)
@@ -106,6 +106,26 @@ void smtp_params_add_one(ARRAY_TYPE(smtp_param) *params, pool_t pool,
        array_push_back(params, &param);
 }
 
+bool smtp_params_drop_one(ARRAY_TYPE(smtp_param) *params, const char *keyword,
+                         const char **value_r)
+{
+       const struct smtp_param *param;
+
+       if (!array_is_created(params))
+               return FALSE;
+
+       array_foreach(params, param) {
+               if (strcasecmp(param->keyword, keyword) == 0) {
+                       if (value_r != NULL)
+                               *value_r = param->value;
+                       array_delete(params,
+                                    array_foreach_idx(params, param), 1);
+                       return TRUE;
+               }
+       }
+       return FALSE;
+}
+
 /* write */
 
 static bool smtp_param_value_valid(const char *value)
@@ -506,22 +526,7 @@ void smtp_params_mail_add_extra(struct smtp_params_mail *params, pool_t pool,
 bool smtp_params_mail_drop_extra(struct smtp_params_mail *params,
                                 const char *keyword, const char **value_r)
 {
-       const struct smtp_param *param;
-
-       if (!array_is_created(&params->extra_params))
-               return FALSE;
-
-       array_foreach(&params->extra_params, param) {
-               if (strcasecmp(param->keyword, keyword) == 0) {
-                       if (value_r != NULL)
-                               *value_r = param->value;
-                       array_delete(&params->extra_params,
-                                    array_foreach_idx(&params->extra_params,
-                                                      param), 1);
-                       return TRUE;
-               }
-       }
-       return FALSE;
+       return smtp_params_drop_one(&params->extra_params, keyword, value_r);
 }
 
 /* write */
@@ -1089,22 +1094,7 @@ void smtp_params_rcpt_add_extra(struct smtp_params_rcpt *params, pool_t pool,
 bool smtp_params_rcpt_drop_extra(struct smtp_params_rcpt *params,
                                 const char *keyword, const char **value_r)
 {
-       const struct smtp_param *param;
-
-       if (!array_is_created(&params->extra_params))
-               return FALSE;
-
-       array_foreach(&params->extra_params, param) {
-               if (strcasecmp(param->keyword, keyword) == 0) {
-                       if (value_r != NULL)
-                               *value_r = param->value;
-                       array_delete(&params->extra_params,
-                                    array_foreach_idx(&params->extra_params,
-                                                      param), 1);
-                       return TRUE;
-               }
-       }
-       return FALSE;
+       return smtp_params_drop_one(&params->extra_params, keyword, value_r);
 }
 
 void smtp_params_rcpt_set_orcpt(struct smtp_params_rcpt *params, pool_t pool,
index 1052f39d8547798a2b635f9d58bea974b7ad116f..f8d81fe464c9904aa04aed57ff90b3f2bb2c97b5 100644 (file)
@@ -87,6 +87,8 @@ int smtp_param_parse(pool_t pool, const char *text,
 
 void smtp_params_add_one(ARRAY_TYPE(smtp_param) *params, pool_t pool,
                         const char *keyword, const char *value);
+bool smtp_params_drop_one(ARRAY_TYPE(smtp_param) *params, const char *keyword,
+                         const char **value_r);
 
 /* write */