]> granicus.if.org Git - php/commitdiff
quota function fixes. Thanks Wez.
authorIlia Alshanetsky <iliaa@php.net>
Mon, 20 Jan 2003 21:28:09 +0000 (21:28 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Mon, 20 Jan 2003 21:28:09 +0000 (21:28 +0000)
ext/imap/php_imap.c
ext/imap/php_imap.h

index 8a3a64a732d49b1d6161a7d03123c106a5f4055b..89ff1789771d6b7f625d480e61f1e2896904b220 100644 (file)
@@ -338,8 +338,11 @@ void mail_free_messagelist(MESSAGELIST **msglist, MESSAGELIST **tail)
  */
 void mail_getquota(MAILSTREAM *stream, char *qroot, QUOTALIST *qlist)
 {
-       zval *t_map;
+       zval *t_map, *return_value;
        TSRMLS_FETCH();
+       
+       return_value = *IMAPG(quota_return);
+
 /* put parsing code here */
        for(; qlist; qlist = qlist->next) {
                MAKE_STD_ZVAL(t_map);
@@ -347,13 +350,13 @@ void mail_getquota(MAILSTREAM *stream, char *qroot, QUOTALIST *qlist)
                if (strncmp(qlist->name, "STORAGE", 7) == 0)
                {
                        /* this is to add backwards compatibility */
-                       add_assoc_long_ex(IMAPG(quota_return), "usage", sizeof("usage"), qlist->usage);
-                       add_assoc_long_ex(IMAPG(quota_return), "limit", sizeof("limit"), qlist->limit);
+                       add_assoc_long_ex(return_value, "usage", sizeof("usage"), qlist->usage);
+                       add_assoc_long_ex(return_value, "limit", sizeof("limit"), qlist->limit);
                }
 
                add_assoc_long_ex(t_map, "usage", sizeof("usage"), qlist->usage);
                add_assoc_long_ex(t_map, "limit", sizeof("limit"), qlist->limit);
-               add_assoc_zval_ex(IMAPG(quota_return), qlist->name, strlen(qlist->name)+1, t_map);
+               add_assoc_zval_ex(return_value, qlist->name, strlen(qlist->name)+1, t_map);
        }
 }
 /* }}} */
@@ -858,7 +861,7 @@ PHP_FUNCTION(imap_get_quota)
        convert_to_string_ex(qroot);
 
        array_init(return_value);
-       *IMAPG(quota_return) = *return_value;
+       IMAPG(quota_return) = &return_value;
 
        /* set the callback for the GET_QUOTA function */
        mail_parameters(NIL, SET_QUOTA, (void *) mail_getquota);
@@ -886,7 +889,7 @@ PHP_FUNCTION(imap_get_quotaroot)
        convert_to_string_ex(mbox);
 
        array_init(return_value);
-       *IMAPG(quota_return) = *return_value;
+       IMAPG(quota_return) = &return_value;
 
        /* set the callback for the GET_QUOTAROOT function */
        mail_parameters(NIL, SET_QUOTA, (void *) mail_getquota);
index 44f19e865551b9be04bd1a8decc273d435d6e3f0..abfb87c4b8b4e1e6e4f26bd2e41989adfaf9aac4 100644 (file)
@@ -200,7 +200,7 @@ ZEND_BEGIN_MODULE_GLOBALS(imap)
        unsigned long status_uidnext;
        unsigned long status_uidvalidity;
 #if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001)
-       zval *quota_return;
+       zval **quota_return;
 #endif
 ZEND_END_MODULE_GLOBALS(imap)