/* manipulate */
+void smtp_params_copy(pool_t pool, ARRAY_TYPE(smtp_param) *dst,
+ const ARRAY_TYPE(smtp_param) *src)
+{
+ const struct smtp_param *param;
+
+ if (!array_is_created(src))
+ return;
+
+ p_array_init(dst, pool, array_count(src));
+ array_foreach(src, param) {
+ struct smtp_param param_new;
+
+ param_new.keyword = p_strdup(pool, param->keyword);
+ param_new.value = p_strdup(pool, param->value);
+ array_push_back(dst, ¶m_new);
+ }
+}
+
void smtp_params_add_one(ARRAY_TYPE(smtp_param) *params, pool_t pool,
const char *keyword, const char *value)
{
dst->ret = src->ret;
dst->size = src->size;
- if (array_is_created(&src->extra_params)) {
- const struct smtp_param *param;
- struct smtp_param param_new;
-
- p_array_init(&dst->extra_params, pool,
- array_count(&src->extra_params));
- array_foreach(&src->extra_params, param) {
- param_new.keyword = p_strdup(pool, param->keyword);
- param_new.value = p_strdup(pool, param->value);
- array_push_back(&dst->extra_params, ¶m_new);
- }
- }
+ smtp_params_copy(pool, &dst->extra_params, &src->extra_params);
}
void smtp_params_mail_add_extra(struct smtp_params_mail *params, pool_t pool,
dst->orcpt.addr_raw = p_strdup(pool, src->orcpt.addr_raw);
dst->orcpt.addr = smtp_address_clone(pool, src->orcpt.addr);
- if (array_is_created(&src->extra_params)) {
- const struct smtp_param *param;
- struct smtp_param param_new;
-
- p_array_init(&dst->extra_params, pool,
- array_count(&src->extra_params));
- array_foreach(&src->extra_params, param) {
- param_new.keyword = p_strdup(pool, param->keyword);
- param_new.value = p_strdup(pool, param->value);
- array_push_back(&dst->extra_params, ¶m_new);
- }
- }
+ smtp_params_copy(pool, &dst->extra_params, &src->extra_params);
}
void smtp_params_rcpt_add_extra(struct smtp_params_rcpt *params, pool_t pool,
/* manipulate */
+void smtp_params_copy(pool_t pool, ARRAY_TYPE(smtp_param) *dst,
+ const ARRAY_TYPE(smtp_param) *src) ATTR_NULL(3);
+
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,
/* manipulate */
void smtp_params_mail_copy(pool_t pool, struct smtp_params_mail *dst,
- const struct smtp_params_mail *src) ATTR_NULL(3);
+ const struct smtp_params_mail *src);
void smtp_params_mail_add_extra(struct smtp_params_mail *params, pool_t pool,
const char *keyword, const char *value)