From: Timo Sirainen Date: Tue, 28 Jun 2016 19:20:20 +0000 (+0300) Subject: auth: Added ":remove" suffix for passdb/userdb extra fields to remove fields. X-Git-Tag: 2.3.0.rc1~3396 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f43d65df4f410ecc21676d402516d2e63c1b2819;p=thirdparty%2Fdovecot%2Fcore.git auth: Added ":remove" suffix for passdb/userdb extra fields to remove fields. --- diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index cb9ba4607c..49d7a2fb26 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -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) {