From: Timo Sirainen Date: Fri, 29 Jan 2016 14:07:35 +0000 (+0200) Subject: lib-sasl: Allow plugins to override the default SASL client mechanisms. X-Git-Tag: 2.2.22.rc1~242 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=87066db47cac5a4baafa5145d2e95a26d26ec24f;p=thirdparty%2Fdovecot%2Fcore.git lib-sasl: Allow plugins to override the default SASL client mechanisms. --- diff --git a/src/lib-sasl/dsasl-client.c b/src/lib-sasl/dsasl-client.c index 60ed9256b6..4406918400 100644 --- a/src/lib-sasl/dsasl-client.c +++ b/src/lib-sasl/dsasl-client.c @@ -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); }