[PHP-CVS] cvs: php4(PHP_4_3) /ext/imap php_imap.c php_imap.h

2003-06-13 Thread Ilia Alshanetsky
iliaa   Fri Jun 13 10:45:36 2003 EDT

  Modified files:  (Branch: PHP_4_3)
/php4/ext/imap  php_imap.c php_imap.h 
  Log:
  MFH:
Fixed bug #24161 (No timeout value for imap functions)
Fixed bug #22505 (Allow imap_sort() and imap_search() to specify a charset)
  
  
Index: php4/ext/imap/php_imap.c
diff -u php4/ext/imap/php_imap.c:1.142.2.13 php4/ext/imap/php_imap.c:1.142.2.14
--- php4/ext/imap/php_imap.c:1.142.2.13 Tue Apr 15 20:58:53 2003
+++ php4/ext/imap/php_imap.cFri Jun 13 10:45:36 2003
@@ -26,7 +26,7 @@
| PHP 4.0 updates:  Zeev Suraski [EMAIL PROTECTED]   |
+--+
  */
-/* $Id: php_imap.c,v 1.142.2.13 2003/04/16 00:58:53 iliaa Exp $ */
+/* $Id: php_imap.c,v 1.142.2.14 2003/06/13 14:45:36 iliaa Exp $ */
 
 #define IMAP41
 
@@ -38,6 +38,7 @@
 #include php_ini.h
 #include ext/standard/php_string.h
 #include ext/standard/info.h
+#include ext/standard/file.h
 
 #ifdef ERROR
 #undef ERROR
@@ -130,6 +131,7 @@
PHP_FE(imap_utf7_encode,NULL)
PHP_FE(imap_mime_header_decode, NULL)
PHP_FE(imap_thread,
 NULL)
+   PHP_FE(imap_timeout,   
 NULL)
 
 #if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001)
PHP_FE(imap_get_quota,  NULL)
@@ -336,6 +338,7 @@
  * Called via the mail_parameter function in c-client:src/c-client/mail.c
  * Author DRK
  */
+
 void mail_getquota(MAILSTREAM *stream, char *qroot, QUOTALIST *qlist)
 {
zval *t_map;
@@ -436,6 +439,17 @@
/* lets allow NIL */
REGISTER_LONG_CONSTANT(NIL, NIL, CONST_PERSISTENT | CONST_CS);
 
+   /* set default timeout values */
+   mail_parameters(NIL, SET_OPENTIMEOUT, (void *) FG(default_socket_timeout));
+   mail_parameters(NIL, SET_READTIMEOUT, (void *) FG(default_socket_timeout));
+   mail_parameters(NIL, SET_WRITETIMEOUT, (void *) FG(default_socket_timeout));
+   mail_parameters(NIL, SET_CLOSETIMEOUT, (void *) FG(default_socket_timeout));
+
+   /* timeout constants */
+   REGISTER_LONG_CONSTANT(IMAP_OPENTIMEOUT, 1, CONST_PERSISTENT | CONST_CS);
+   REGISTER_LONG_CONSTANT(IMAP_READTIMEOUT, 2, CONST_PERSISTENT | CONST_CS);
+   REGISTER_LONG_CONSTANT(IMAP_WRITETIMEOUT, 3, CONST_PERSISTENT | CONST_CS);
+   REGISTER_LONG_CONSTANT(IMAP_CLOSETIMEOUT, 4, CONST_PERSISTENT | CONST_CS);
 
/* Open Options */
 
@@ -703,7 +717,7 @@
 
IMAPG(imap_user) = estrndup(Z_STRVAL_PP(user), Z_STRLEN_PP(user));
IMAPG(imap_password) = estrndup(Z_STRVAL_PP(passwd), Z_STRLEN_PP(passwd));
-   
+
imap_stream = mail_open(NIL, Z_STRVAL_PP(mailbox), flags);
 
if (imap_stream == NIL) {
@@ -2359,11 +2373,11 @@
 }
 /* }}} */
 
-/* {{{ proto array imap_sort(resource stream_id, int criteria, int reverse [, int 
options [, string search_criteria]])
+/* {{{ proto array imap_sort(resource stream_id, int criteria, int reverse [, int 
options [, string search_criteria [, string charset]]])
Sort an array of message headers, optionally including only messages that meet 
specified criteria. */
 PHP_FUNCTION(imap_sort)
 {
-   zval **streamind, **pgm, **rev, **flags, **criteria;
+   zval **streamind, **pgm, **rev, **flags, **criteria, **charset;
pils *imap_le_struct;
unsigned long *slst, *sl;
char *search_criteria;
@@ -2371,7 +2385,7 @@
SEARCHPGM *spg=NIL;
int myargc = ZEND_NUM_ARGS();

-   if (myargc  3 || myargc  5 || zend_get_parameters_ex(myargc, streamind, 
pgm, rev, flags, criteria) == FAILURE) {
+   if (myargc  3 || myargc  6 || zend_get_parameters_ex(myargc, streamind, 
pgm, rev, flags, criteria, charset) == FAILURE) {
ZEND_WRONG_PARAM_COUNT();
}
 
@@ -2386,10 +2400,13 @@
if (myargc = 4) {
convert_to_long_ex(flags);
}
-   if (myargc == 5) {
+   if (myargc = 5) {
search_criteria = estrndup(Z_STRVAL_PP(criteria), 
Z_STRLEN_PP(criteria));
spg = mail_criteria(search_criteria);
efree(search_criteria);
+   if (myargc == 6) {
+   convert_to_string_ex(charset);
+   }
} else {
spg = mail_newsearchpgm();
}
@@ -2399,7 +2416,7 @@
mypgm-function = (short) Z_LVAL_PP(pgm);
mypgm-next = NIL;

-   slst = mail_sort(imap_le_struct-imap_stream, NIL, spg, mypgm, myargc = 4 ? 
Z_LVAL_PP(flags) : NIL);
+   slst = mail_sort(imap_le_struct-imap_stream, (myargc == 6 ? 
Z_STRVAL_PP(charset) : NIL), spg, mypgm, (myargc = 4 ? Z_LVAL_PP(flags) : NIL));
 
if (spg) {
mail_free_searchpgm(spg);
@@ -3351,18 

[PHP-CVS] cvs: php4(PHP_4_3) /ext/imap php_imap.c php_imap.h

2003-01-24 Thread Ilia Alshanetsky
iliaa   Fri Jan 24 12:10:40 2003 EDT

  Modified files:  (Branch: PHP_4_3)
/php4/ext/imap  php_imap.c php_imap.h 
  Log:
  MFH (memory leak in quota functions).
  
  
Index: php4/ext/imap/php_imap.c
diff -u php4/ext/imap/php_imap.c:1.142.2.8 php4/ext/imap/php_imap.c:1.142.2.9
--- php4/ext/imap/php_imap.c:1.142.2.8  Fri Jan 24 05:13:16 2003
+++ php4/ext/imap/php_imap.cFri Jan 24 12:10:40 2003
@@ -26,7 +26,7 @@
| PHP 4.0 updates:  Zeev Suraski [EMAIL PROTECTED]   |
+--+
  */
-/* $Id: php_imap.c,v 1.142.2.8 2003/01/24 10:13:16 sniper Exp $ */
+/* $Id: php_imap.c,v 1.142.2.9 2003/01/24 17:10:40 iliaa Exp $ */
 
 #define IMAP41
 
@@ -339,7 +339,11 @@
 void mail_getquota(MAILSTREAM *stream, char *qroot, QUOTALIST *qlist)
 {
zval *t_map;
+   zval *return_value;
TSRMLS_FETCH();
+
+   return_value = *IMAPG(quota_return);
+   
 /* put parsing code here */
for(; qlist; qlist = qlist-next) {
MAKE_STD_ZVAL(t_map);
@@ -352,13 +356,13 @@
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);
}
 }
 /* }}} */
@@ -862,22 +866,16 @@
 
convert_to_string_ex(qroot);
 
-   MAKE_STD_ZVAL(IMAPG(quota_return));
-   if (array_init(IMAPG(quota_return)) == FAILURE) {
-   php_error(E_WARNING, %s(): Unable to allocate array memory, 
get_active_function_name(TSRMLS_C));
-   FREE_ZVAL(IMAPG(quota_return));
-   RETURN_FALSE;
-   }
+   array_init(return_value);
+   IMAPG(quota_return) = return_value;
 
/* set the callback for the GET_QUOTA function */
mail_parameters(NIL, SET_QUOTA, (void *) mail_getquota);
if(!imap_getquota(imap_le_struct-imap_stream, Z_STRVAL_PP(qroot))) {
-   php_error(E_WARNING, %s(): c-client imap_getquota failed, 
get_active_function_name(TSRMLS_C));
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, c-client imap_getquota 
+failed);
+   zval_dtor(return_value);
RETURN_FALSE;
}
-
-   *return_value = *IMAPG(quota_return);
-   FREE_ZVAL(IMAPG(quota_return));
 }
 /* }}} */
 
@@ -896,22 +894,16 @@
 
convert_to_string_ex(mbox);
 
-   MAKE_STD_ZVAL(IMAPG(quota_return));
-   if (array_init(IMAPG(quota_return)) == FAILURE) {
-   php_error(E_WARNING, %s(): Unable to allocate array memory, 
get_active_function_name(TSRMLS_C));
-   FREE_ZVAL(IMAPG(quota_return));
-   RETURN_FALSE;
-   }
+   array_init(return_value);
+   IMAPG(quota_return) = return_value;
 
/* set the callback for the GET_QUOTAROOT function */
mail_parameters(NIL, SET_QUOTA, (void *) mail_getquota);
if(!imap_getquotaroot(imap_le_struct-imap_stream, Z_STRVAL_PP(mbox))) {
-   php_error(E_WARNING, %s(): c-client imap_getquotaroot failed, 
get_active_function_name(TSRMLS_C));
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, c-client 
+imap_getquotaroot failed);
+   zval_dtor(return_value);
RETURN_FALSE;
}
-
-   *return_value = *IMAPG(quota_return);
-   FREE_ZVAL(IMAPG(quota_return));
 }
 /* }}} */
 
Index: php4/ext/imap/php_imap.h
diff -u php4/ext/imap/php_imap.h:1.24.2.1 php4/ext/imap/php_imap.h:1.24.2.2
--- php4/ext/imap/php_imap.h:1.24.2.1   Tue Dec 31 11:34:44 2002
+++ php4/ext/imap/php_imap.hFri Jan 24 12:10:40 2003
@@ -27,7 +27,7 @@
+--+
  */
 
-/* $Id: php_imap.h,v 1.24.2.1 2002/12/31 16:34:44 sebastian Exp $ */
+/* $Id: php_imap.h,v 1.24.2.2 2003/01/24 17:10:40 iliaa Exp $ */
 
 #ifndef PHP_IMAP_H
 #define PHP_IMAP_H
@@ -200,7 +200,7 @@
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)
 



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php