Re: mailbox referrals in 2.4.12

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 12 Dec 2011, Andrew Morgan wrote:

In my test cyrus murder environment, which has frontends running 2.4.12, I
am still seeing mailbox referrals when I have
proxyd_disable_mailbox_referrals: 1 set in imapd.conf.  Apparently this
was reported back in 2010:

  http://lists.andrew.cmu.edu/pipermail/info-cyrus/2010-November/034092.html

It sounds like the original 2.3 patch wasn't ported forward to 2.4.

Does anyone have a patch for this against 2.4?  The code is different
enough in 2.4 that the original 2.3 patch would need some work.

I worked up a simple patch against 2.4.12 which seems to work in my test environment. See the attachment.

Honestly, I don't see what the variable disable_referalls really does anymore. I'd remove it, but I don't understand how it is used in this code in imap/imapd.c:

static const struct sasl_callback mysasl_cb[] = {
    { SASL_CB_GETOPT, &mysasl_config, NULL },
    { SASL_CB_PROXY_POLICY, &imapd_proxy_policy, (void*) &imapd_proxyctx },
    { SASL_CB_CANON_USER, &imapd_canon_user, (void*) &disable_referrals },
    { SASL_CB_LIST_END, NULL, NULL }
};

Nothing changes the value of disable_referrals that I can see. It is initialized to 0.

Should I file a bug for this and attach my patch?

Thanks,
	Andy
--- imap/imapd.c.orig	2011-10-04 12:53:03.000000000 -0700
+++ imap/imapd.c	2011-12-13 15:08:41.000000000 -0800
@@ -2819,7 +2819,7 @@
 	if (capa_is_disabled(base_capabilities[i].str))
 	    continue;
 	/* Don't show "MAILBOX-REFERRALS" if disabled by config */
-	if (disable_referrals && 
+	if (config_getswitch(IMAPOPT_PROXYD_DISABLE_MAILBOX_REFERRALS) && 
 	    !strcmp(base_capabilities[i].str, "MAILBOX-REFERRALS"))
 	    continue;
 	/* Don't show if they're not shown at this level of login */
@@ -5979,7 +5979,11 @@
     clock_t start = clock();
     char mytime[100];
 
-    if (listargs->sel & LIST_SEL_REMOTE) supports_referrals = !disable_referrals;
+    if (listargs->sel & LIST_SEL_REMOTE) {
+	if (!config_getswitch(IMAPOPT_PROXYD_DISABLE_MAILBOX_REFERRALS)) {
+	    supports_referrals = 1;
+	}
+    }
 
     list_callback_calls = 0;
 
----
Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux