summaryrefslogtreecommitdiff
path: root/ext/imap/php_imap.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/imap/php_imap.c')
-rw-r--r--ext/imap/php_imap.c512
1 files changed, 72 insertions, 440 deletions
diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c
index b5f12f6eee..ec23bda52b 100644
--- a/ext/imap/php_imap.c
+++ b/ext/imap/php_imap.c
@@ -1,7 +1,5 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
@@ -46,6 +44,7 @@
#undef ERROR
#endif
#include "php_imap.h"
+#include "php_imap_arginfo.h"
#include <time.h>
#include <stdio.h>
@@ -97,373 +96,6 @@ void *fs_get(size_t size);
ZEND_DECLARE_MODULE_GLOBALS(imap)
static PHP_GINIT_FUNCTION(imap);
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_open, 0, 0, 3)
- ZEND_ARG_INFO(0, mailbox)
- ZEND_ARG_INFO(0, user)
- ZEND_ARG_INFO(0, password)
- ZEND_ARG_INFO(0, options)
- ZEND_ARG_INFO(0, n_retries)
- ZEND_ARG_INFO(0, params)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_reopen, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, mailbox)
- ZEND_ARG_INFO(0, options)
- ZEND_ARG_INFO(0, n_retries)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_append, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, folder)
- ZEND_ARG_INFO(0, message)
- ZEND_ARG_INFO(0, options)
- ZEND_ARG_INFO(0, date)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_num_msg, 0, 0, 1)
- ZEND_ARG_INFO(0, stream_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_ping, 0, 0, 1)
- ZEND_ARG_INFO(0, stream_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_num_recent, 0, 0, 1)
- ZEND_ARG_INFO(0, stream_id)
-ZEND_END_ARG_INFO()
-
-#if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001)
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_get_quota, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, qroot)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_get_quotaroot, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, mbox)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_set_quota, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, qroot)
- ZEND_ARG_INFO(0, mailbox_size)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_setacl, 0, 0, 4)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, mailbox)
- ZEND_ARG_INFO(0, id)
- ZEND_ARG_INFO(0, rights)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_getacl, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, mailbox)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_expunge, 0, 0, 1)
- ZEND_ARG_INFO(0, stream_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_gc, 0, 0, 1)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, flags)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_close, 0, 0, 1)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_headers, 0, 0, 1)
- ZEND_ARG_INFO(0, stream_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_body, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, msg_no)
- ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_mail_copy, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, msglist)
- ZEND_ARG_INFO(0, mailbox)
- ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_mail_move, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, sequence)
- ZEND_ARG_INFO(0, mailbox)
- ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_createmailbox, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, mailbox)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_renamemailbox, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, old_name)
- ZEND_ARG_INFO(0, new_name)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_deletemailbox, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, mailbox)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_list, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, ref)
- ZEND_ARG_INFO(0, pattern)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_getmailboxes, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, ref)
- ZEND_ARG_INFO(0, pattern)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_listscan, 0, 0, 4)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, ref)
- ZEND_ARG_INFO(0, pattern)
- ZEND_ARG_INFO(0, content)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_check, 0, 0, 1)
- ZEND_ARG_INFO(0, stream_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_delete, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, msg_no)
- ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_undelete, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, msg_no)
- ZEND_ARG_INFO(0, flags)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_headerinfo, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, msg_no)
- ZEND_ARG_INFO(0, from_length)
- ZEND_ARG_INFO(0, subject_length)
- ZEND_ARG_INFO(0, default_host)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_rfc822_parse_headers, 0, 0, 1)
- ZEND_ARG_INFO(0, headers)
- ZEND_ARG_INFO(0, default_host)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_lsub, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, ref)
- ZEND_ARG_INFO(0, pattern)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_getsubscribed, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, ref)
- ZEND_ARG_INFO(0, pattern)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_subscribe, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, mailbox)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_unsubscribe, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, mailbox)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_fetchstructure, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, msg_no)
- ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_fetchbody, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, msg_no)
- ZEND_ARG_INFO(0, section)
- ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_savebody, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, file)
- ZEND_ARG_INFO(0, msg_no)
- ZEND_ARG_INFO(0, section)
- ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_base64, 0, 0, 1)
- ZEND_ARG_INFO(0, text)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_qprint, 0, 0, 1)
- ZEND_ARG_INFO(0, text)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_8bit, 0, 0, 1)
- ZEND_ARG_INFO(0, text)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_binary, 0, 0, 1)
- ZEND_ARG_INFO(0, text)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_mailboxmsginfo, 0, 0, 1)
- ZEND_ARG_INFO(0, stream_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_rfc822_write_address, 0, 0, 3)
- ZEND_ARG_INFO(0, mailbox)
- ZEND_ARG_INFO(0, host)
- ZEND_ARG_INFO(0, personal)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_rfc822_parse_adrlist, 0, 0, 2)
- ZEND_ARG_INFO(0, address_string)
- ZEND_ARG_INFO(0, default_host)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_utf8, 0, 0, 1)
- ZEND_ARG_INFO(0, mime_encoded_text)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_utf7_decode, 0, 0, 1)
- ZEND_ARG_INFO(0, buf)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_utf7_encode, 0, 0, 1)
- ZEND_ARG_INFO(0, buf)
-ZEND_END_ARG_INFO()
-
-#ifdef HAVE_IMAP_MUTF7
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_utf8_to_mutf7, 0, 0, 1)
- ZEND_ARG_INFO(0, in)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_mutf7_to_utf8, 0, 0, 1)
- ZEND_ARG_INFO(0, in)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_setflag_full, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, sequence)
- ZEND_ARG_INFO(0, flag)
- ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_clearflag_full, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, sequence)
- ZEND_ARG_INFO(0, flag)
- ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_sort, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, criteria)
- ZEND_ARG_INFO(0, reverse)
- ZEND_ARG_INFO(0, options)
- ZEND_ARG_INFO(0, search_criteria)
- ZEND_ARG_INFO(0, charset)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_fetchheader, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, msg_no)
- ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_uid, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, msg_no)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_msgno, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, unique_msg_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_status, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, mailbox)
- ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_bodystruct, 0, 0, 3)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, msg_no)
- ZEND_ARG_INFO(0, section)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_fetch_overview, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, sequence)
- ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_mail_compose, 0, 0, 2)
- ZEND_ARG_INFO(0, envelope)
- ZEND_ARG_INFO(0, body)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_mail, 0, 0, 3)
- ZEND_ARG_INFO(0, to)
- ZEND_ARG_INFO(0, subject)
- ZEND_ARG_INFO(0, message)
- ZEND_ARG_INFO(0, additional_headers)
- ZEND_ARG_INFO(0, cc)
- ZEND_ARG_INFO(0, bcc)
- ZEND_ARG_INFO(0, rpath)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_search, 0, 0, 2)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, criteria)
- ZEND_ARG_INFO(0, options)
- ZEND_ARG_INFO(0, charset)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_imap_alerts, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_imap_errors, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_imap_last_error, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_mime_header_decode, 0, 0, 1)
- ZEND_ARG_INFO(0, str)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_thread, 0, 0, 1)
- ZEND_ARG_INFO(0, stream_id)
- ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_timeout, 0, 0, 1)
- ZEND_ARG_INFO(0, timeout_type)
- ZEND_ARG_INFO(0, timeout)
-ZEND_END_ARG_INFO()
-/* }}} */
/* {{{ imap_functions[]
*/
@@ -481,7 +113,7 @@ static const zend_function_entry imap_functions[] = {
PHP_FE(imap_body, arginfo_imap_body)
PHP_FE(imap_bodystruct, arginfo_imap_bodystruct)
PHP_FE(imap_fetchbody, arginfo_imap_fetchbody)
- PHP_FE(imap_fetchmime, arginfo_imap_fetchbody)
+ PHP_FE(imap_fetchmime, arginfo_imap_fetchmime)
PHP_FE(imap_savebody, arginfo_imap_savebody)
PHP_FE(imap_fetchheader, arginfo_imap_fetchheader)
PHP_FE(imap_fetchstructure, arginfo_imap_fetchstructure)
@@ -539,13 +171,13 @@ static const zend_function_entry imap_functions[] = {
#endif
PHP_FE(imap_mail, arginfo_imap_mail)
+ PHP_FE(imap_getsubscribed, arginfo_imap_getsubscribed)
+ PHP_FE(imap_getmailboxes, arginfo_imap_getmailboxes)
PHP_FALIAS(imap_header, imap_headerinfo, arginfo_imap_headerinfo)
PHP_FALIAS(imap_listmailbox, imap_list, arginfo_imap_list)
- PHP_FALIAS(imap_getmailboxes, imap_list_full, arginfo_imap_getmailboxes)
PHP_FALIAS(imap_scanmailbox, imap_listscan, arginfo_imap_listscan)
PHP_FALIAS(imap_listsubscribed, imap_lsub, arginfo_imap_lsub)
- PHP_FALIAS(imap_getsubscribed, imap_lsub_full, arginfo_imap_getsubscribed)
PHP_FALIAS(imap_fetchtext, imap_body, arginfo_imap_body)
PHP_FALIAS(imap_scan, imap_listscan, arginfo_imap_listscan)
PHP_FALIAS(imap_create, imap_createmailbox, arginfo_imap_createmailbox)
@@ -1176,7 +808,7 @@ static void php_imap_do_open(INTERNAL_FUNCTION_PARAMETERS, int persistent)
if (zend_parse_parameters(argc, "PSS|lla", &mailbox, &user,
&passwd, &flags, &retries, &params) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (argc >= 4) {
@@ -1294,7 +926,7 @@ PHP_FUNCTION(imap_reopen)
long cl_flags=NIL;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS|ll", &streamind, &mailbox, &options, &retries) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1339,7 +971,7 @@ PHP_FUNCTION(imap_append)
STRING st;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSS|SS", &streamind, &folder, &message, &flags, &internal_date) == FAILURE) {
- return;
+ RETURN_THROWS();
}
@@ -1387,7 +1019,7 @@ PHP_FUNCTION(imap_num_msg)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &streamind) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1406,7 +1038,7 @@ PHP_FUNCTION(imap_ping)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &streamind) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1425,7 +1057,7 @@ PHP_FUNCTION(imap_num_recent)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &streamind) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1446,7 +1078,7 @@ PHP_FUNCTION(imap_get_quota)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS", &streamind, &qroot) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1475,7 +1107,7 @@ PHP_FUNCTION(imap_get_quotaroot)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS", &streamind, &mbox) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1506,7 +1138,7 @@ PHP_FUNCTION(imap_set_quota)
STRINGLIST limits;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSl", &streamind, &qroot, &mailbox_size) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1530,7 +1162,7 @@ PHP_FUNCTION(imap_setacl)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSSS", &streamind, &mailbox, &id, &rights) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1550,7 +1182,7 @@ PHP_FUNCTION(imap_getacl)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS", &streamind, &mailbox) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1583,7 +1215,7 @@ PHP_FUNCTION(imap_expunge)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &streamind) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1605,7 +1237,7 @@ PHP_FUNCTION(imap_gc)
zend_long flags;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rl", &streamind, &flags) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (flags && ((flags & ~(GC_TEXTS | GC_ELT | GC_ENV)) != 0)) {
@@ -1633,7 +1265,7 @@ PHP_FUNCTION(imap_close)
int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "r|l", &streamind, &options) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1675,7 +1307,7 @@ PHP_FUNCTION(imap_headers)
char tmp[MAILTMPLEN];
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &streamind) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1727,7 +1359,7 @@ PHP_FUNCTION(imap_body)
unsigned long body_len = 0;
if (zend_parse_parameters(argc, "rl|l", &streamind, &msgno, &flags) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (flags && ((flags & ~(FT_UID|FT_PEEK|FT_INTERNAL)) != 0)) {
@@ -1772,7 +1404,7 @@ PHP_FUNCTION(imap_mail_copy)
pils *imap_le_struct;
if (zend_parse_parameters(argc, "rSS|l", &streamind, &seq, &folder, &options) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1798,7 +1430,7 @@ PHP_FUNCTION(imap_mail_move)
int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "rSS|l", &streamind, &seq, &folder, &options) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1822,7 +1454,7 @@ PHP_FUNCTION(imap_createmailbox)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS", &streamind, &folder) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1846,7 +1478,7 @@ PHP_FUNCTION(imap_renamemailbox)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSS", &streamind, &old_mailbox, &new_mailbox) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1870,7 +1502,7 @@ PHP_FUNCTION(imap_deletemailbox)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS", &streamind, &folder) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1895,7 +1527,7 @@ PHP_FUNCTION(imap_list)
STRINGLIST *cur=NIL;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSS", &streamind, &ref, &pat) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1926,7 +1558,7 @@ PHP_FUNCTION(imap_list)
/* {{{ proto array imap_getmailboxes(resource stream_id, string ref, string pattern)
Reads the list of mailboxes and returns a full array of objects containing name, attributes, and delimiter */
/* Author: CJH */
-PHP_FUNCTION(imap_list_full)
+PHP_FUNCTION(imap_getmailboxes)
{
zval *streamind, mboxob;
zend_string *ref, *pat;
@@ -1935,7 +1567,7 @@ PHP_FUNCTION(imap_list_full)
char *delim=NIL;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSS", &streamind, &ref, &pat) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -1984,7 +1616,7 @@ PHP_FUNCTION(imap_listscan)
STRINGLIST *cur=NIL;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSSS", &streamind, &ref, &pat, &content) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -2018,7 +1650,7 @@ PHP_FUNCTION(imap_check)
char date[100];
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &streamind) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -2053,7 +1685,7 @@ PHP_FUNCTION(imap_delete)
int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "rz|l", &streamind, &sequence, &flags) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -2079,7 +1711,7 @@ PHP_FUNCTION(imap_undelete)
int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "rz|l", &streamind, &sequence, &flags) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -2109,7 +1741,7 @@ PHP_FUNCTION(imap_headerinfo)
char dummy[2000], fulladdress[MAILTMPLEN + 1];
if (zend_parse_parameters(argc, "rl|llS", &streamind, &msgno, &fromlength, &subjectlength, &defaulthost) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -2189,7 +1821,7 @@ PHP_FUNCTION(imap_rfc822_parse_headers)
int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "S|S", &headers, &defaulthost) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (argc == 2) {
@@ -2216,7 +1848,7 @@ PHP_FUNCTION(imap_lsub)
STRINGLIST *cur=NIL;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSS", &streamind, &ref, &pat) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -2246,7 +1878,7 @@ PHP_FUNCTION(imap_lsub)
/* {{{ proto array imap_getsubscribed(resource stream_id, string ref, string pattern)
Return a list of subscribed mailboxes, in the same format as imap_getmailboxes() */
/* Author: CJH */
-PHP_FUNCTION(imap_lsub_full)
+PHP_FUNCTION(imap_getsubscribed)
{
zval *streamind, mboxob;
zend_string *ref, *pat;
@@ -2255,7 +1887,7 @@ PHP_FUNCTION(imap_lsub_full)
char *delim=NIL;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSS", &streamind, &ref, &pat) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -2303,7 +1935,7 @@ PHP_FUNCTION(imap_subscribe)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS", &streamind, &folder) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -2327,7 +1959,7 @@ PHP_FUNCTION(imap_unsubscribe)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rS", &streamind, &folder) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -2353,7 +1985,7 @@ PHP_FUNCTION(imap_fetchstructure)
int msgindex, argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "rl|l", &streamind, &msgno, &flags) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (flags && ((flags & ~FT_UID) != 0)) {
@@ -2405,7 +2037,7 @@ PHP_FUNCTION(imap_fetchbody)
int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "rlS|l", &streamind, &msgno, &sec, &flags) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (flags && ((flags & ~(FT_UID|FT_PEEK|FT_INTERNAL)) != 0)) {
@@ -2447,7 +2079,7 @@ PHP_FUNCTION(imap_fetchmime)
int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "rlS|l", &streamind, &msgno, &sec, &flags) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (flags && ((flags & ~(FT_UID|FT_PEEK|FT_INTERNAL)) != 0)) {
@@ -2487,7 +2119,7 @@ PHP_FUNCTION(imap_savebody)
zend_long msgno, flags = 0;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS(), "rzl|Sl", &stream, &out, &msgno, &section, &flags)) {
- RETURN_FALSE;
+ RETURN_THROWS();
}
if ((imap_ptr = (pils *)zend_fetch_resource(Z_RES_P(stream), "imap", le_imap)) == NULL) {
@@ -2541,7 +2173,7 @@ PHP_FUNCTION(imap_base64)
unsigned long newlength;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &text) == FAILURE) {
- return;
+ RETURN_THROWS();
}
decode = (char *) rfc822_base64((unsigned char *) ZSTR_VAL(text), ZSTR_LEN(text), &newlength);
@@ -2564,7 +2196,7 @@ PHP_FUNCTION(imap_qprint)
unsigned long newlength;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &text) == FAILURE) {
- return;
+ RETURN_THROWS();
}
decode = (char *) rfc822_qprint((unsigned char *) ZSTR_VAL(text), ZSTR_LEN(text), &newlength);
@@ -2587,7 +2219,7 @@ PHP_FUNCTION(imap_8bit)
unsigned long newlength;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &text) == FAILURE) {
- return;
+ RETURN_THROWS();
}
decode = (char *) rfc822_8bit((unsigned char *) ZSTR_VAL(text), ZSTR_LEN(text), &newlength);
@@ -2610,7 +2242,7 @@ PHP_FUNCTION(imap_binary)
unsigned long newlength;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &text) == FAILURE) {
- return;
+ RETURN_THROWS();
}
decode = (char*)rfc822_binary(ZSTR_VAL(text), ZSTR_LEN(text), &newlength);
@@ -2635,7 +2267,7 @@ PHP_FUNCTION(imap_mailboxmsginfo)
zend_ulong unreadmsg = 0, deletedmsg = 0, msize = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &streamind) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -2679,7 +2311,7 @@ PHP_FUNCTION(imap_rfc822_write_address)
zend_string *string;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "SSS", &mailbox, &host, &personal) == FAILURE) {
- return;
+ RETURN_THROWS();
}
addr=mail_newaddr();
@@ -2720,7 +2352,7 @@ PHP_FUNCTION(imap_rfc822_parse_adrlist)
ENVELOPE *env;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "SS", &str, &defaulthost) == FAILURE) {
- return;
+ RETURN_THROWS();
}
env = mail_newenvelope();
@@ -2763,7 +2395,7 @@ PHP_FUNCTION(imap_utf8)
SIZEDTEXT src, dest;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &str) == FAILURE) {
- return;
+ RETURN_THROWS();
}
src.data = NULL;
@@ -2827,7 +2459,7 @@ PHP_FUNCTION(imap_utf7_decode)
} state;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &arg) == FAILURE) {
- return;
+ RETURN_THROWS();
}
in = (const unsigned char *) ZSTR_VAL(arg);
@@ -2966,7 +2598,7 @@ PHP_FUNCTION(imap_utf7_encode)
} state;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &arg) == FAILURE) {
- return;
+ RETURN_THROWS();
}
in = (const unsigned char *) ZSTR_VAL(arg);
@@ -3070,7 +2702,7 @@ static void php_imap_mutf7(INTERNAL_FUNCTION_PARAMETERS, int mode) /* {{{ */
unsigned char *out;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &in) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (ZSTR_LEN(in) < 1) {
@@ -3118,7 +2750,7 @@ PHP_FUNCTION(imap_setflag_full)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSS|l", &streamind, &sequence, &flag, &flags) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -3141,7 +2773,7 @@ PHP_FUNCTION(imap_clearflag_full)
int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "rSS|l", &streamind, &sequence, &flag, &flags) ==FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -3168,7 +2800,7 @@ PHP_FUNCTION(imap_sort)
int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "rll|lSS", &streamind, &pgm, &rev, &flags, &criteria, &charset) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -3224,7 +2856,7 @@ PHP_FUNCTION(imap_fetchheader)
int msgindex, argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "rl|l", &streamind, &msgno, &flags) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (flags && ((flags & ~(FT_UID|FT_INTERNAL|FT_PREFETCHTEXT)) != 0)) {
@@ -3261,7 +2893,7 @@ PHP_FUNCTION(imap_uid)
int msgindex;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rl", &streamind, &msgno) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -3287,7 +2919,7 @@ PHP_FUNCTION(imap_msgno)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rl", &streamind, &msgno) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -3308,7 +2940,7 @@ PHP_FUNCTION(imap_status)
pils *imap_le_struct;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rSl", &streamind, &mbx, &flags) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -3353,7 +2985,7 @@ PHP_FUNCTION(imap_bodystruct)
BODY *body;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rlS", &streamind, &msg, &section) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -3466,7 +3098,7 @@ PHP_FUNCTION(imap_fetch_overview)
int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "rS|l", &streamind, &sequence, &flags) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (flags && ((flags & ~FT_UID) != 0)) {
@@ -3556,7 +3188,7 @@ PHP_FUNCTION(imap_mail_compose)
int first;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "aa", &envelope, &body) == FAILURE) {
- return;
+ RETURN_THROWS();
}
#define PHP_RFC822_PARSE_ADRLIST(target, value) \
@@ -4106,7 +3738,7 @@ PHP_FUNCTION(imap_mail)
if (zend_parse_parameters(argc, "SSS|SSSS", &to, &subject, &message,
&headers, &cc, &bcc, &rpath) == FAILURE) {
- return;
+ RETURN_THROWS();
}
/* To: */
@@ -4150,7 +3782,7 @@ PHP_FUNCTION(imap_search)
SEARCHPGM *pgm = NIL;
if (zend_parse_parameters(argc, "rS|lS", &streamind, &criteria, &flags, &charset) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -4193,7 +3825,7 @@ PHP_FUNCTION(imap_alerts)
STRINGLIST *cur=NIL;
if (zend_parse_parameters_none() == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (IMAPG(imap_alertstack) == NIL) {
@@ -4220,7 +3852,7 @@ PHP_FUNCTION(imap_errors)
ERRORLIST *cur=NIL;
if (zend_parse_parameters_none() == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (IMAPG(imap_errorstack) == NIL) {
@@ -4247,7 +3879,7 @@ PHP_FUNCTION(imap_last_error)
ERRORLIST *cur=NIL;
if (zend_parse_parameters_none() == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (IMAPG(imap_errorstack) == NIL) {
@@ -4276,7 +3908,7 @@ PHP_FUNCTION(imap_mime_header_decode)
unsigned long newlength;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &str) == FAILURE) {
- return;
+ RETURN_THROWS();
}
array_init(return_value);
@@ -4753,7 +4385,7 @@ PHP_FUNCTION(imap_thread)
SEARCHPGM *pgm = NIL;
if (zend_parse_parameters(argc, "r|l", &streamind, &flags) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((imap_le_struct = (pils *)zend_fetch_resource(Z_RES_P(streamind), "imap", le_imap)) == NULL) {
@@ -4788,7 +4420,7 @@ PHP_FUNCTION(imap_timeout)
int timeout_type;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "l|l", &ttype, &timeout) == FAILURE) {
- RETURN_FALSE;
+ RETURN_THROWS();
}
if (timeout == -1) {