--On Wednesday, March 19, 2003 15:57:14 -0500 Ken Murchison <[EMAIL PROTECTED]> wrote:


You should wait for a reply from Rob for definitive answers, but I'll
get you started.

...

> Should all of the ACLs be cleared on the old server before the
> move starts, then restored when the move is finished, or is that taken
care

You shouldn't have to change ACLs. The location of the mailbox has no effect on the ACL

I was actually thinking more along the lines of temporarily setting all ACLs on the mailbox to "none" in order to make sure the user didn't corrupt the mailbox with APPENDs or some such thing. But if it's getting somehow locked for the move, I guess that isn't necessary.


> Secondly, is there a way to get cyradm (or alternately,
Cyrus::IMAP::Admin)
> to return the backend server where a mailbox is located? Or is there
some

Yup.


info <mailbox>

It uses the IMAP ANNOTATEMORE extension for this.  If you use 'info'
without any args, it will show you any server annotations (motd,
comment).  You can use 'setinfo' to set either one of these.

That's certainly helpful -- info is in fact what I'm looking for. I presume that's the same as the undocumented $client->getinfo() call in Cyrus::IMAP::Admin?


Anyway, I think I see where I'm running afoul of cyradm. The code for doing the referrals in Cyrus/IMAP/Admin.pm is something like this:


###### my $cyradm = Cyrus::IMAP::Admin->new($refserver, $port) or die "cyradm: cannot connect to $refserver\n"; $cyradm->addcallback({-trigger => 'EOF', -callback => \&_cb_ref_eof, -rock => \$cyradm}); $cyradm->authenticate() or die "cyradm: cannot authenticate to $refserver\n"; ######

The problem is that for a lot of the things we do around here, we use some of the undocumented arguments to authenticate(), because SASL has the nasty habit of trying to do KERBEROS_IV before it does GSSAPI, which is almost always not what we want it to do, although we have KERBEROS_IV support on for older clients. Also, it tries to guess the UserID and AuthID, and usually guesses it wrong for our purposes. However, when this calls authenticate() from within the setaclmailbox() call, or whatever, it's using all of the defaults. I wonder if it would be useful to store all of the arguments passed into authenticate() in instance variables of the $client object for later retrieval, perhaps with a getauthinfo() call, or some such thing. Would we be the only ones who would find that useful, or would that benefit others as well? (If so, I may get started on it... Perhaps this should move over to cyrus-devel at some point...)

Thanks much,
Michael




Reply via email to