From: Aki Tuomi Date: Thu, 16 Mar 2017 11:36:23 +0000 (+0200) Subject: auth: Add auth_fields_import_prefixed X-Git-Tag: 2.3.0.rc1~1922 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6e76be05e480dc717f4d48483029ac1cbd8d237b;p=thirdparty%2Fdovecot%2Fcore.git auth: Add auth_fields_import_prefixed --- diff --git a/src/auth/auth-fields.c b/src/auth/auth-fields.c index 3a245abe3d..b6ad680e42 100644 --- a/src/auth/auth-fields.c +++ b/src/auth/auth-fields.c @@ -114,8 +114,8 @@ void auth_fields_reset(struct auth_fields *fields) } } -void auth_fields_import(struct auth_fields *fields, const char *str, - enum auth_field_flags flags) +void auth_fields_import_prefixed(struct auth_fields *fields, const char *prefix, + const char *str, enum auth_field_flags flags) { T_BEGIN { const char *const *arg = t_strsplit_tabescaped(str); @@ -128,12 +128,20 @@ void auth_fields_import(struct auth_fields *fields, const char *str, value = NULL; } else { key = t_strdup_until(*arg, value++); + if (*prefix != '\0') + key = t_strconcat(prefix, key, NULL); } auth_fields_add(fields, key, value, flags); } } T_END; } +void auth_fields_import(struct auth_fields *fields, const char *str, + enum auth_field_flags flags) +{ + auth_fields_import_prefixed(fields, "", str, flags); +} + const ARRAY_TYPE(auth_field) *auth_fields_export(struct auth_fields *fields) { if (!array_is_created(&fields->fields)) diff --git a/src/auth/auth-fields.h b/src/auth/auth-fields.h index cee1e898cc..25c91c72e7 100644 --- a/src/auth/auth-fields.h +++ b/src/auth/auth-fields.h @@ -28,6 +28,8 @@ bool auth_fields_exists(struct auth_fields *fields, const char *key); void auth_fields_import(struct auth_fields *fields, const char *str, enum auth_field_flags flags); +void auth_fields_import_prefixed(struct auth_fields *fields, const char *prefix, + const char *str, enum auth_field_flags flags); const ARRAY_TYPE(auth_field) *auth_fields_export(struct auth_fields *fields); /* Append fields where (flag & flags_mask) == flags_result. */ void auth_fields_append(struct auth_fields *fields, string_t *dest,