]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: Added ":remove" suffix for passdb/userdb extra fields to remove fields.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 28 Jun 2016 19:20:20 +0000 (22:20 +0300)
committerGitLab <gitlab@git.dovecot.net>
Wed, 29 Jun 2016 12:37:46 +0000 (15:37 +0300)
src/auth/auth-request.c

index cb9ba4607c46e9bd2b50a00b56b6cdcb0938a1b1..49d7a2fb26fe80fec12e54ddddde6ce7dbe18eff 100644 (file)
@@ -1650,6 +1650,11 @@ void auth_request_set_field(struct auth_request *request,
                name = t_strndup(name, name_len-10);
                if (auth_fields_exists(request->extra_fields, name))
                        return;
+       } else if (name_len > 7 && strcmp(name+name_len-7, ":remove") == 0) {
+               /* remove this field entirely */
+               name = t_strndup(name, name_len-7);
+               auth_fields_remove(request->extra_fields, name);
+               return;
        }
 
        if (strcmp(name, "password") == 0) {
@@ -1814,6 +1819,11 @@ void auth_request_set_userdb_field(struct auth_request *request,
                name = t_strndup(name, name_len-10);
                if (auth_fields_exists(request->userdb_reply, name))
                        return;
+       } else if (name_len > 7 && strcmp(name+name_len-7, ":remove") == 0) {
+               /* remove this field entirely */
+               name = t_strndup(name, name_len-7);
+               auth_fields_remove(request->userdb_reply, name);
+               return;
        }
 
        if (strcmp(name, "uid") == 0) {