]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: Add auth_fields_import_prefixed
authorAki Tuomi <aki.tuomi@dovecot.fi>
Thu, 16 Mar 2017 11:36:23 +0000 (13:36 +0200)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Sun, 19 Mar 2017 18:11:53 +0000 (20:11 +0200)
src/auth/auth-fields.c
src/auth/auth-fields.h

index 3a245abe3d180a51704e00bd1424d72b4a82a0d2..b6ad680e42eab948bffd3666194da4d37009b45d 100644 (file)
@@ -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))
index cee1e898cc5e615b802525c3d74d2fcfe3cb9e91..25c91c72e77fa8300f013abd024f8d8746d6201d 100644 (file)
@@ -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,