array_push_back(params, ¶m);
}
+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)
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(¶ms->extra_params))
- return FALSE;
-
- array_foreach(¶ms->extra_params, param) {
- if (strcasecmp(param->keyword, keyword) == 0) {
- if (value_r != NULL)
- *value_r = param->value;
- array_delete(¶ms->extra_params,
- array_foreach_idx(¶ms->extra_params,
- param), 1);
- return TRUE;
- }
- }
- return FALSE;
+ return smtp_params_drop_one(¶ms->extra_params, keyword, value_r);
}
/* write */
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(¶ms->extra_params))
- return FALSE;
-
- array_foreach(¶ms->extra_params, param) {
- if (strcasecmp(param->keyword, keyword) == 0) {
- if (value_r != NULL)
- *value_r = param->value;
- array_delete(¶ms->extra_params,
- array_foreach_idx(¶ms->extra_params,
- param), 1);
- return TRUE;
- }
- }
- return FALSE;
+ return smtp_params_drop_one(¶ms->extra_params, keyword, value_r);
}
void smtp_params_rcpt_set_orcpt(struct smtp_params_rcpt *params, pool_t pool,