]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-sasl: Allow plugins to override the default SASL client mechanisms.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 29 Jan 2016 14:07:35 +0000 (16:07 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 29 Jan 2016 14:07:35 +0000 (16:07 +0200)
src/lib-sasl/dsasl-client.c

index 60ed9256b6b37ecc4495d14c15038135de079609..44069184002d183d2aaf57a11ab55a162ea31ab1 100644 (file)
@@ -36,6 +36,12 @@ const char *dsasl_client_mech_get_name(const struct dsasl_client_mech *mech)
 
 void dsasl_client_mech_register(const struct dsasl_client_mech *mech)
 {
+       unsigned int idx;
+
+       if (dsasl_client_mech_find_idx(mech->name, &idx) != NULL) {
+               /* allow plugins to override the default mechanisms */
+               array_delete(&dsasl_mechanisms, idx, 1);
+       }
        array_append(&dsasl_mechanisms, &mech, 1);
 }