[imp] Fwd: [PHP-DEV] IMAP quota functionality

Jan Schneider jan@horde.org
Mon, 22 Jul 2002 10:35:30 +0200


This message is in MIME format.

---------------------- multipart/mixed attachment
This might be interesting for anyone having problems with imap quotas.
Please send any feedback directly to Dan.

----- Weitergeleitete Nachricht von dank@deadmime.org -----
    Datum: Thu, 18 Jul 2002 21:48:17 -0400 (EDT)
    Von: Dan Kalowsky <dank@deadmime.org>
Antwort an: Dan Kalowsky <dank@deadmime.org>
 Betreff: [PHP-DEV] IMAP quota functionality
      An: PHP Development Mailing list <php-dev@lists.php.net>

Hey there php-dev readers,

Attached is a patch (based off of 4.2.1 release) for the IMAP system that
needs testing.  It's been brought to my attention that the quota support
is sort of... well, not standards compliant.  So I tried to fix that.

In the process I've also hopefully added in imap_get_quotaroot()
capabilities as well.

This patch NEEDS through testing, but would be nice to see in 4.3.
Unfortunately I have no access to an IMAP server with quota capabilities
turned on, so I can't really test.

imap_get_quota() should work the same, only now you will be returned the
name value as well, or whatever that is in quota name field (i.e. a
message).  The qlist array now looks like:

[qlist] => [name]
        => [usage]
        => [limit]

imap_get_quotaroot() should not require the user to be run as a mail-admin
user, making this eventually much more useful.  Here is an example using
it:

<?php

$mbx = imap_open( /* blah blah blah */);
$qroot = imap_get_quotaroot($mbx, "INBOX");
// this should retrieve the quota for the logged in users INBOX
if (!$qroot) {
  print "We have nothing!";
} else {
  foreach ($qroot as $name => $value)
    print "$name and $value\n";
}

?>

As usual please test and send any comments back to me.

>---------------------------------------------------------------<
Dan Kalowsky			"A little less conversation,
http://www.deadmime.org/~dank
 a little more action."
dank@nospam-deadmime.org
 - "A Little Less Conversation",
kalowsky@nospam-php.net
		Elvis Presley

----- Ende der weitergeleiteten Nachricht -----


Jan.

--
http://www.horde.org - The Horde Project
http://www.ammma.de - discover your knowledge
http://www.tip4all.de - Deine private Tippgemeinschaft
---------------------- multipart/mixed attachment
T25seSBpbiBpbWFwOiAuZGVwcw0KT25seSBpbiBpbWFwOiBsaWJzLm1rDQpkaWZmIC11IGltYXAt
b3JpZy9waHBfaW1hcC5jIGltYXAvcGhwX2ltYXAuYw0KLS0tIGltYXAtb3JpZy9waHBfaW1hcC5j
CVdlZCBBcHIgMjQgMTE6MzA6MTYgMjAwMg0KKysrIGltYXAvcGhwX2ltYXAuYwlUaHUgSnVsIDE4
IDE4OjA0OjIxIDIwMDINCkBAIC0yMiw2ICsyMiw3IEBADQogICAgfCAgICAgICAgICBBbmRyZXcg
U2thbHNraSAgICAgIDxhc2thbHNraUBjaGVraW5jLmNvbT4gICAgICAgICAgICAgICAgICB8DQog
ICAgfCAgICAgICAgICBIYXJ0bXV0IEhvbHpncmFlZmUgIDxoYXJ0bXV0QHNpeC5kZT4gICAgICAg
ICAgICAgICAgICAgICAgICB8DQogICAgfCAgICAgICAgICBKYW5pIFRhc2tpbmVuICAgICAgIDxz
bmlwZXJAaWtpLmZpPiAgICAgICAgICAgICAgICAgICAgICAgICB8DQorICAgfCAgICAgICAgICBE
YW5pZWwgUi4gS2Fsb3dza3kgIDxrYWxvd3NreUBwaHAubmV0PiAgICAgICAgICAgICAgICAgICAg
ICB8DQogICAgfCBQSFAgNC4wIHVwZGF0ZXM6ICBaZWV2IFN1cmFza2kgPHplZXZAemVuZC5jb20+
ICAgICAgICAgICAgICAgICAgICAgICB8DQogICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQogICovDQpAQCAt
MTMyLDYgKzEzMyw3IEBADQogDQogI2lmIGRlZmluZWQoSEFWRV9JTUFQMjAwMCkgfHwgZGVmaW5l
ZChIQVZFX0lNQVAyMDAxKQ0KIAlQSFBfRkUoaW1hcF9nZXRfcXVvdGEsCQkJCQkJCU5VTEwpDQor
CVBIUF9GRShpbWFwX2dldF9xdW90YXJvb3QsCQkJCQkJTlVMTCkNCiAJUEhQX0ZFKGltYXBfc2V0
X3F1b3RhLAkJCQkJCQlOVUxMKQ0KICAJUEhQX0ZFKGltYXBfc2V0YWNsLAkJCQkJCQkJTlVMTCkN
CiAjZW5kaWYNCkBAIC0zNzEsMTIgKzM3MywyMiBAQA0KIHsNCiAJVFNSTUxTX0ZFVENIKCk7DQog
DQotCS8qIHRoaXMgc2hvdWxkIG9ubHkgYmUgcnVuIHRocm91Z2ggb25jZSAqLw0KLQlmb3IgKDsg
cWxpc3Q7IHFsaXN0ID0gcWxpc3QtPm5leHQpDQotCXsNCi0JCUlNQVBHKHF1b3RhX3VzYWdlKSA9
IHFsaXN0LT51c2FnZTsNCi0JCUlNQVBHKHF1b3RhX2xpbWl0KSA9IHFsaXN0LT5saW1pdDsNCi0J
fQ0KKwlJTUFQRyhxdW90YV9yZXR1cm4pID0gcWxpc3Q7DQorDQorfQ0KKy8qIH19fSAqLw0KKw0K
Ky8qIHt7eyBtYWlsX2dldHF1b3Rhcm9vdA0KKyAqDQorICogTWFpbCBHRVRfUVVPVEFST09UIGNh
bGxiYWNrDQorICogQ2FsbGVkIHZpYSB0aGUgbWFpbF9wYXJhbWV0ZXIgZnVuY3Rpb24gaW4gYy1j
bGllbnQ6c3JjL2MtY2xpZW50L21haWwuYw0KKyAqIEF1dGhvciBEUksNCisgKi8NCit2b2lkIG1h
aWxfZ2V0cXVvdGFyb290KE1BSUxTVFJFQU0gKnN0cmVhbSwgY2hhciAqbWJ4LCBTVFJJTkdMSVNU
ICpxcm9vdCkNCit7DQorCVRTUk1MU19GRVRDSCgpOw0KKw0KKwlJTUFQRyhxdW90YXJvb3RfcmV0
dXJuKSA9IHFyb290Ow0KIH0NCiAvKiB9fX0gKi8NCiAjZW5kaWYNCkBAIC0zOTYsNiArNDA4LDEw
IEBADQogCWltYXBfZ2xvYmFscy0+aW1hcF9mb2xkZXJfb2JqZWN0cyA9IE5JTDsNCiAJaW1hcF9n
bG9iYWxzLT5pbWFwX3Nmb2xkZXJfb2JqZWN0cyA9IE5JTDsNCiAJaW1hcF9nbG9iYWxzLT5mb2xk
ZXJsaXN0X3N0eWxlID0gRkxJU1RfQVJSQVk7DQorI2lmIGRlZmluZWQoSEFWRV9JTUFQMjAwMCkg
fHwgZGVmaW5lZChIQVZFX0lNQVAyMDAxKQ0KKwlpbWFwX2dsb2JhbHMtPnF1b3RhX3JldHVybiA9
IE5JTDsNCisJaW1hcF9nbG9iYWxzLT5xdW90YXJvb3RfcmV0dXJuID0gTklMOw0KKyNlbmRpZg0K
IH0NCiAvKiB9fX0gKi8NCiANCkBAIC0xMDE3LDYgKzEwMzMsNyBAQA0KIHsNCiAJenZhbCAqKnN0
cmVhbWluZCwgKipxcm9vdDsNCiAJcGlscyAqaW1hcF9sZV9zdHJ1Y3Q7DQorCVFVT1RBTElTVCAq
cWxpc3Q7DQogDQogCWlmIChaRU5EX05VTV9BUkdTKCkgIT0gMiB8fCB6ZW5kX2dldF9wYXJhbWV0
ZXJzX2V4KDIsICZzdHJlYW1pbmQsICZxcm9vdCkgPT0gRkFJTFVSRSkgew0KIAkJWkVORF9XUk9O
R19QQVJBTV9DT1VOVCgpOw0KQEAgLTEwMzcsOSArMTA1NCw1NCBAQA0KIAkJcGhwX2Vycm9yKEVf
V0FSTklORywgIlVuYWJsZSB0byBhbGxvY2F0ZSBhcnJheSBtZW1vcnkiKTsNCiAJCVJFVFVSTl9G
QUxTRTsNCiAJfQ0KLQkJDQotCWFkZF9hc3NvY19sb25nKHJldHVybl92YWx1ZSwgInVzYWdlIiwg
SU1BUEcocXVvdGFfdXNhZ2UpKTsNCi0JYWRkX2Fzc29jX2xvbmcocmV0dXJuX3ZhbHVlLCAibGlt
aXQiLCBJTUFQRyhxdW90YV9saW1pdCkpOw0KKw0KKwlxbGlzdCA9IElNQVBHKHF1b3RhX3JldHVy
bik7DQorDQorCWZvciAoOyBxbGlzdDsgcWxpc3QgPSBxbGlzdC0+bmV4dCkgew0KKwkJYWRkX2Fz
c29jX2xvbmcocmV0dXJuX3ZhbHVlLCAidXNhZ2UiLCBxbGlzdC0+dXNhZ2UpOw0KKwkJYWRkX2Fz
c29jX2xvbmcocmV0dXJuX3ZhbHVlLCAibGltaXQiLCBxbGlzdC0+bGltaXQpOw0KKwkJYWRkX2Fz
c29jX3N0cmluZyhyZXR1cm5fdmFsdWUsICJuYW1lIiwgcWxpc3QtPm5hbWUsIHN0cmxlbihxbGlz
dC0+bmFtZSkpOw0KKwl9DQorDQorCUlNQVBHKHF1b3RhX3JldHVybikgPSBOSUw7DQorfQ0KKy8q
IH19fSAqLw0KKw0KKy8qIHt7eyBwcm90byBhcnJheSBpbWFwX2dldF9xdW90YXJvb3QoaW50IHN0
cmVhbV9pZCwgc3RyaW5nIG1ib3gpDQorICAgIFJldHVybnMgdGhlIHF1b3RhIHNldCB0byB0aGUg
bWFpbGJveCBhY2NvdW50IG1ib3ggKi8NCitQSFBfRlVOQ1RJT04oaW1hcF9nZXRfcXVvdGFyb290
KQ0KK3sNCisgICAgenZhbCAqKnN0cmVhbWluZCwgKiptYm94Ow0KKyAgICBwaWxzICppbWFwX2xl
X3N0cnVjdDsNCisgICAgU1RSSU5HTElTVCAqcWxpc3Q7DQorDQorICAgIGlmIChaRU5EX05VTV9B
UkdTKCkgIT0gMiB8fCB6ZW5kX2dldF9wYXJhbWV0ZXJzX2V4KDIsICZzdHJlYW1pbmQsICZtYm94
KSA9PSBGQUlMVVJFKSB7DQorICAgICAgICBaRU5EX1dST05HX1BBUkFNX0NPVU5UKCk7DQorICAg
IH0NCisNCisgICAgWkVORF9GRVRDSF9SRVNPVVJDRShpbWFwX2xlX3N0cnVjdCwgcGlscyAqLCBz
dHJlYW1pbmQsIC0xLCAiaW1hcCIsIGxlX2ltYXApOw0KKw0KKyAgICBjb252ZXJ0X3RvX3N0cmlu
Z19leChtYm94KTsNCisNCisgICAgLyogc2V0IHRoZSBjYWxsYmFjayBmb3IgdGhlIEdFVF9RVU9U
QVJPT1QgZnVuY3Rpb24gKi8NCisgICAgbWFpbF9wYXJhbWV0ZXJzKE5JTCwgU0VUX1FVT1RBUk9P
VCwgKHZvaWQgKikgbWFpbF9nZXRxdW90YXJvb3QpOw0KKyAgICBpZighaW1hcF9nZXRxdW90YXJv
b3QoaW1hcF9sZV9zdHJ1Y3QtPmltYXBfc3RyZWFtLCBaX1NUUlZBTF9QUChtYm94KSkpIHsNCisg
ICAgICAgIHBocF9lcnJvcihFX1dBUk5JTkcsICJjLWNsaWVudCBpbWFwX2dldHF1b3Rhcm9vdCBm
YWlsZWQiKTsNCisgICAgICAgIFJFVFVSTl9GQUxTRTsNCisgICAgfQ0KKw0KKyAgICBpZiAoYXJy
YXlfaW5pdChyZXR1cm5fdmFsdWUpID09IEZBSUxVUkUpIHsNCisgICAgICAgIHBocF9lcnJvcihF
X1dBUk5JTkcsICJVbmFibGUgdG8gYWxsb2NhdGUgYXJyYXkgbWVtb3J5Iik7DQorICAgICAgICBS
RVRVUk5fRkFMU0U7DQorICAgIH0NCisNCisJcWxpc3QgPSBJTUFQRyhxdW90YXJvb3RfcmV0dXJu
KTsNCisNCisJZm9yICg7IHFsaXN0OyBxbGlzdCA9IHFsaXN0LT5uZXh0KSB7DQorCQlhZGRfYXNz
b2NfbG9uZyhyZXR1cm5fdmFsdWUsIHFsaXN0LT50ZXh0LmRhdGEsIHFsaXN0LT50ZXh0LnNpemUp
Ow0KKwl9DQorCQ0KKwlJTUFQRyhxdW90YXJvb3RfcmV0dXJuKSA9IE5JTDsNCiB9DQogLyogfX19
ICovDQogDQpkaWZmIC11IGltYXAtb3JpZy9waHBfaW1hcC5oIGltYXAvcGhwX2ltYXAuaA0KLS0t
IGltYXAtb3JpZy9waHBfaW1hcC5oCU1vbiBNYXIgMTEgMTg6MTE6MzcgMjAwMg0KKysrIGltYXAv
cGhwX2ltYXAuaAlNb24gSnVsIDE1IDIzOjA3OjM1IDIwMDINCkBAIC0xNzcsNiArMTc3LDcgQEAN
CiANCiAjaWYgZGVmaW5lZChIQVZFX0lNQVAyMDAwKSB8fCBkZWZpbmVkKEhBVkVfSU1BUDIwMDEp
DQogUEhQX0ZVTkNUSU9OKGltYXBfZ2V0X3F1b3RhKTsNCitQSFBfRlVOQ1RJT04oaW1hcF9nZXRf
cXVvdGFyb290KTsNCiBQSFBfRlVOQ1RJT04oaW1hcF9zZXRfcXVvdGEpOw0KIFBIUF9GVU5DVElP
TihpbWFwX3NldGFjbCk7DQogI2VuZGlmDQpAQCAtMjAxLDggKzIwMiw4IEBADQogCXVuc2lnbmVk
IGxvbmcgc3RhdHVzX3VpZG5leHQ7DQogCXVuc2lnbmVkIGxvbmcgc3RhdHVzX3VpZHZhbGlkaXR5
Ow0KICNpZiBkZWZpbmVkKEhBVkVfSU1BUDIwMDApIHx8IGRlZmluZWQoSEFWRV9JTUFQMjAwMSkN
Ci0JdW5zaWduZWQgbG9uZyBxdW90YV91c2FnZTsNCi0JdW5zaWduZWQgbG9uZyBxdW90YV9saW1p
dDsNCisJUVVPVEFMSVNUICpxdW90YV9yZXR1cm47DQorCVNUUklOR0xJU1QgKnF1b3Rhcm9vdF9y
ZXR1cm47DQogI2VuZGlmDQogWkVORF9FTkRfTU9EVUxFX0dMT0JBTFMoaW1hcCkNCiANCg==

---------------------- multipart/mixed attachment--