1 diff -r 5daa8cce8706 ext/imap/php_imap.c
2 --- a/ext/imap/php_imap.c Wed Dec 23 22:46:34 2009 +0100
3 +++ b/ext/imap/php_imap.c Wed Dec 23 22:49:02 2009 +0100
7 ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_getacl, 0, 0, 2)
8 + ZEND_ARG_INFO(0, stream_id)
9 + ZEND_ARG_INFO(0, mailbox)
12 +ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_myrights, 0, 0, 2)
13 ZEND_ARG_INFO(0, stream_id)
14 ZEND_ARG_INFO(0, mailbox)
17 PHP_FE(imap_set_quota, arginfo_imap_set_quota)
18 PHP_FE(imap_setacl, arginfo_imap_setacl)
19 PHP_FE(imap_getacl, arginfo_imap_getacl)
20 + PHP_FE(imap_myrights, arginfo_imap_myrights)
22 #if defined(HAVE_IMAP2005)
23 PHP_FE(imap_setannotation, arginfo_imap_setannotation)
25 for(; alist; alist = alist->next) {
26 add_assoc_stringl(IMAPG(imap_acl_list), alist->identifier, alist->rights, strlen(alist->rights), 1);
33 + * Mail MYRIGHTS callback
34 + * Called via the mail_parameter function in c-client:src/c-client/mail.c
36 +void mail_myrights(MAILSTREAM *stream, char *mailbox, char *rights)
40 + ZVAL_STRING(IMAPG(imap_acl_list), rights, 1)
45 @@ -1525,6 +1545,36 @@
46 IMAPG(imap_acl_list) = NIL;
50 +/* {{{ proto string imap_myrights(resource stream_id, string mailbox)
51 + Gets my rights (ACL) for a given mailbox */
52 +PHP_FUNCTION(imap_myrights)
54 + zval **streamind, **mailbox;
55 + pils *imap_le_struct;
57 + if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &streamind, &mailbox) == FAILURE) {
58 + ZEND_WRONG_PARAM_COUNT();
61 + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, "imap", le_imap);
63 + convert_to_string_ex(mailbox);
65 + IMAPG(imap_acl_list) = return_value;
67 + /* set the callback for the GET_ACL function */
68 + mail_parameters(NIL, SET_MYRIGHTS, (void *) mail_myrights);
69 + if(!imap_myrights(imap_le_struct->imap_stream, Z_STRVAL_PP(mailbox))) {
70 + php_error(E_WARNING, "c-client imap_myrights failed");
71 + zval_dtor(return_value);
75 + IMAPG(imap_acl_list) = NIL;
79 #endif /* HAVE_IMAP2000 || HAVE_IMAP2001 */
81 #if defined(HAVE_IMAP2005)
82 diff -r 5daa8cce8706 ext/imap/php_imap.h
83 --- a/ext/imap/php_imap.h Wed Dec 23 22:46:34 2009 +0100
84 +++ b/ext/imap/php_imap.h Wed Dec 23 22:49:02 2009 +0100
86 PHP_FUNCTION(imap_set_quota);
87 PHP_FUNCTION(imap_setacl);
88 PHP_FUNCTION(imap_getacl);
89 +PHP_FUNCTION(imap_myrights);
91 #if defined(HAVE_IMAP2005)
92 PHP_FUNCTION(imap_setannotation);